第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果對話框上按鈕多,豈不是要為每個按鈕(控件)都添加消息處理函數(shù)?

如果對話框上按鈕多,豈不是要為每個按鈕(控件)都添加消息處理函數(shù)?

C++ C
嗶嗶one 2023-04-22 18:14:43
是這樣的,在VC中,如果一個Dialog上有多個按鈕,則每雙擊一個按鈕,就會自動添加與之對應的消息,比如:OnBnOKClick(),然后,在對話框類,加上了public的afx_msg,以及在實現(xiàn)*.cpp里,添加了消息映射但是,如果對話框上按鈕多,豈不是要為每個按鈕(控件)都添加消息處理函數(shù)?能不能為每個同類型的控件,比如按鈕,都映射同一個消息函數(shù),(比如我自己添加的BtnClicked()),根據(jù)按鈕的ID號來進行判斷,當前按下的是哪個按鈕并處理?我試過了,用以下方法,沒有任何反應:void CDemoDlg::BtnClicked(){switch(GetCtlID()){case ONOK:MessageBox("按下的OK按鈕");break;case ONCANCEL:MessageBox("按下的CANCEL按鈕");break;}}有其他辦法嗎?還請各位前輩不吝賜教為謝!
查看完整描述

3 回答

?
月關寶盒

TA貢獻1772條經(jīng)驗 獲得超5個贊

ON_CONTROL_RANGE(BN_CLICKED, 1000, 1005, OnButton)//1000-1005是上面自動添加的按扭ID
在H文件“protected:”下面加上
afx_msg void OnButton(UINT ID);
在CPP文件寫上函數(shù)體:
void Form::OnButton(UINT ID)
{
switch(ID)
{
case 1000:
MessageBox("你按了第一個按扭。");
break;
case 1001:
MessageBox("你按了第二個按扭。");
break;
}
}

關鍵在于ON_CONTROL_RANGE咋個宏 

查看完整回答
反對 回復 2023-04-26
?
MYYA

TA貢獻1868條經(jīng)驗 獲得超4個贊

添加虛函數(shù)DefWindowProc

LRESULT CDemoDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam) 
{
if (message==WM_COMMAND)
{
//wID就是按鈕控件的id,一般你的按鈕id最好是連續(xù)的在一個范圍內(nèi),
然后只要id在這個范圍內(nèi),我們就認為是按鈕的消息,否則是其他控件
發(fā)出的消息
int wID =LOWORD(wParam);

}

return CDialog::DefWindowProc(message, wParam, lParam);
}

 


查看完整回答
反對 回復 2023-04-26
?
瀟瀟雨雨

TA貢獻1833條經(jīng)驗 獲得超4個贊

我也遇到過類似問題,可能是ACCESS支持的不好吧,
我的解決辦法是還是分而治之,我定義了幾個CRecordSet類,每個CRecordSet類對應數(shù)據(jù)庫的一張表,程序中要更新數(shù)據(jù)的時候,分開來對各個CRecordSet類操作。

查看完整回答
反對 回復 2023-04-26
  • 3 回答
  • 0 關注
  • 245 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號