1、C++ 控制項ID在哪裡定義?
在 MS Visual Studio 環境下打開 .rc ,在 String Table 里可以改它的名字,不要改值。
用文本編輯改.rc,新手容內易發生格式錯誤。
程序容里h.cpp 里相應的名字替換成新的。
控制項是對數據和方法的封裝。控制項可以有自己的屬性和方法。屬性是控制項數據的簡單訪問者。方法則是控制項的一些簡單而可見的功能。
使用現成的控制項來開發應用程序時,控制項工作在兩種模式下:設計時態和運行時態。
在設計時態下,控制項顯示在開發環境下的一個窗體中。設計時態下控制項的方法不能被調用,控制項不能與最終用戶直接進行交互操作,也不需要實現控制項的全部功能。
在 運行狀態下,控制項工作在一個確實已經運行的應用程序中。控制項必須正確地將自身表示出來,它需要對方法的調用進行處理並實現與其他控制項之間有效的協同工作。
2、VC中如何獲取消息來源控制項的IDC
你要說清楚是用MFC還是用純Windows
API編程。如果是MFC一般你把一個控制項的消息映射成函數那麼這個函數被調用的時候必然是這個對應控制項的ID號。如果你將多個控制項映射到了一個函數,則你可能會希望知道發出消息的控制項ID。我想到的做法是調用MFC的全局函數AfxGetCurrentMessage()即可得到當前在處理的一個消息的MSG結構指針。之後的做法和API編程一樣。
如果是純API編程,那麼你會在窗口函數得到MSG結構,該結構包含了消息號,消息產生的時間以及消息的兩個參數WPARAM和LPARAM。控制項的ID就是藏在了WPARAM和LPARAM內。絕大部分控制項都是想父窗口發送WM_COMMAND消息的,那麼控制項的ID就是wParam的低字位。比如你想處理一個按鈕單擊的消息,這個按鈕在單擊的時候向父窗口發送WM_COMMAND,然後在wParam的高字位包含BTN_CLICKED,低字位包含IDC_BUTTON1之類的ID號。
你可以用LOWORD(wParam)來獲得ID號。
總結一下,MFC下
PMSG
pMsg
=
AfxGetCurrentMessage();
UINT
nID
=
LOWORD(pMsg->wParam);
Windows
API就不說了,你會API編程肯定知道如何得到ID號。
3、如何為picture控制項idc
你是想設置背景色吧
直接使用picture控制項添加bmp圖片,不容易實現你描述的功能。
可以通過以下方法解決:
1.添加一個picture控制項ID假定為IDC_S_PIC,調整的你需要的大小,類型原則Frame。
2.在OnPaint函數中添加以下代碼在IDC_S_PIC制定的范圍內添加背景圖片。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void CBDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
CRect rect;
GetDlgItem(IDC_S_PIC)->GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmpBackground;
if(bmpBackground.LoadBitmap(IDB_BITMAP1))
{ //保證載入圖片成功後再執行以下操作
BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
dc.StretchBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,
bitmap.bmWidth,bitmap.bmHeight,SRCCOPY);
}
}
4、((CButton*)GetDlgItem(IDC_RADIO_DAY))->SetCheck();//Radio button控制項對嗎?????
((CButton*)GetDlgItem(IDC_RADIO_DAY))-> SetCheck(1);
後面得有返回值吧
我是用SetCheck(0)設為沒有選中
用SetCheck(1)設為被選中
我是這么用的
望採納
5、MFC兩個子頁面a和b,在a中獲得b中控制項IDC_picture的客戶區的坐標,應該怎麼弄
首先獲取b的句柄,這個很簡單。以下假設b頁面對應的CWnd指針是pB
CWnd *pWnd = pB->GetDlgItem(IDC_picture);
CRect rect;
pWnd->GetClientRect(&rect);
pB->ScreenToClient(&rect);
6、怎樣在MFC中添加IDC_STATIC?????
MFC里邊不是有個可視化的界面編輯器?
在資源視圖里邊,將靜態文本控制項拖入你的對話框中,將其ID改成IDC_STATIC_POS就好了。
7、用c語言開發Windows程序,如何判斷IDC_EDIT輸入框裡面的內容為空,並報錯。比如IDC_EDIT控制項
查mfc 手冊 GetwindowText
8、MFC在哪個位置加CListBox控制項的DDX_Control(pDX, IDC_LIST_BOX, m_ExcelList);
DDX_Control當然是加在DoDataExchange裡面。
不過這個強烈不建議手工添加(尤其是初學者),其中有不少的關聯關系,建議通過ClassWizard向導等編輯器提供的方式添加。
9、MFC中,若只更新一個指定控制項的值,那用什麼命令?比如:IDC_CHECK1,綁定變數 BOOL m_check1.
最好通過控制項指針或控制項對象進行操作.
10、小白求助:C++中 IDC_STATIC1-20 如何用動態變數代替控制項後面的數字
IDC_STATIC1 是UINT類型的常量,你可以修改resource.h裡面的定義,使得多個static的ID連續,你就可以這樣用 GetDlgItem(IDC_STATIC1+m_addrTemp) 假設 m_addrTemp小於static的個數。