青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Sleeping

Note Book

DialogBox的若干問題

今天繼續折騰那個List Box控件,發現一個問題,當對話框出來之后,被主窗體給刷屏了,不能得到子窗體的句柄。后經仔細調試,發現一些端倪。首先在調用 DialogBox函數時 ,所生成的Dialog(我這里的Dialog面板里有一個Edit控件 兩個按鈕控件 和一個List Box控件)依次產生的消息隊列如下所示:
WM_SETFONT    0x0030                 設置字體
WM_INITDIALOG 0x0110                 初始化Dialog
WM_WINDOWPOSCHANGING            0x0046                窗體大小 位置等轉變的消息
WM_NCACTIVATE   0x0086          改變一個非工作區域 sent to a window when its nonclient area needs to be changed to indicate an active or inactive state.
WM_ACTIVATE     0x0006   讓你窗體無效 并激活子窗體
WM_COMMAND   0x0111 (HIWORD(WPARAM))->LBN_SETFOCUS(4) ->LBN_KILLFOCUS(5) 消息命令 ListBox
WM_USER     0x0400    用戶自定義消息
WM_NCACTIVATE  0x0086
WM_SHOWWINDOW   0x0018   顯示窗體
WM_WINDOWPOSCHANGING 0x0046
WM_NCPAINT 0x0085    The WM_NCPAINT message is sent to a window when its frame must be painted.
WM_ERASEBKGND 0x0014   清楚窗口背景
WM_WINDOWPOSCHANGED 0x0047  
WM_GETICON 0x007F  3次   The WM_GETICON message is sent to a window to retrieve a handle to the large or small icon associated with a window
WM_NCCALCSIZE 0x0083   計算機窗體大小尺寸
WM_MOVE 0x0003     移動
WM_SIZE 0x0005     改變大小
WM_PAINT 0x000F    繪制窗體
WM_CTLCOLORBTN 0x0135   繪制按鈕的顏色
WM_CTLCOLORLISTBOX 0x0134  繪制Listbox的顏色
WM_CTLCOLOREDIT 0x0133   繪制Edit的顏色
WM_POWERBROADCAST 0x0218   broadcast to an application to notify it of power-management events
while(1) 一直循環以下的兩個消息
WM_NCACTIVATE  0x0086
WM_WINDOWPOSCHANGING            0x0046

代碼如下:
BOOL CALLBACK  ListBoxTest(HWND hWnd,UINT message , WPARAM wParam, LPARAM lParam) 

int wmId = LOWORD(wParam ); 
int wmEvent = HIWORD(wParam) ; 
int i ; 
HDC hDc ; 
PAINTSTRUCT ps ; 
HWND hListBox ; 
switch(message) 

  
case WM_INITDIALOG: 
   hListBox 
= GetDlgItem(hWnd,IDC_LIST_TEST) ; 
   
for(i = 0; MyData[i].Name[0!= 0 ; i++

    SendMessage(hListBox,LB_ADDSTRING,
0,(LPARAM)MyData[i].Name) ; 
    SendMessage(hListBox,LB_SETITEMDATA,  i ,(LPARAM)i) ; 
   }
 
   SetFocus(hListBox); 
   
return (TRUE) ; 
  
case WM_PAINT: 
   hDc 
= BeginPaint(hWnd,&ps) ; 
   
//MSGPRINT(_T("Print")) ; 
   EndPaint(hWnd,&ps); 
   
break ; 
  
case LB_ADDFILE: 
   
break ; 
  
case WM_COMMAND: 
   
switch(wmId) 
{
 
   
case IDC_LIST_TEST: 
    
switch(wmEvent) 
   {
 
    
case LBN_SELCHANGE: 
     
//MSGPRINT(_T("LBN_SELCHANGE")); 
     break ; 
    
case LBN_DBLCLK: 
     
//MSGPRINT(_T("LBN_DBLCLK")); 
     break ; 
    
case LBN_SETFOCUS: 
     
//MSGPRINT(_T("LBN_SETFOCUS")) ; 
     break ; 
    
case LBN_KILLFOCUS: 
     
//MSGPRINT(_T("LBN_KILLFOCUS")) ; 
     break ; 
    }
 
    
return FALSE ; 
    
break ; 
   
case IDOK: 
    MSGPRINT(_T(
"IDOK")); 
    EndDialog(hWnd,
0) ; 
    
return TRUE; 
    
break ; 
   
case IDCANCEL: 
    MSGPRINT(_T(
"IDCANCEL")); 
    EndDialog(hWnd,
0) ; 
    
return TRUE ; 
    
break ; 
   }
 
}
 
return FALSE;
}

如果最后返回TRUE那么窗體的著色會很有問題,Dialog的顏色和背景顏色完全一樣,導致不能看到一個窗體的存在,所以這里必須返回FALSE,
MSDN作出的解釋如下:Typically, the dialog box procedure should return TRUE if it processed the message, and FALSE if it did not. If the dialog box procedure returns FALSE, the dialog manager performs the default dialog operation in response to the message.
意即,如果這個窗體想處理哪個消息就返回TRUE,如果不想處理這個消息就返回FALSE,所以在最后應該返回False,即默認不處理那些消息而只算WM_INITDIALOG 和其它一些IDOK IDCANCEL的消息。
If the dialog box procedure processes a message that requires a specific return value, the dialog box procedure should set the desired return value by calling SetWindowLong(hwndDlg, DWL_MSGRESULT, lResult) immediately before returning TRUE. Note that you must call SetWindowLong immediately before returning TRUE; doing so earlier may result in the DWL_MSGRESULT value being overwritten by a nested dialog box message.

這個嘛   靠 英文 爛!勉勉強強
如果窗體在處理一個消息時需要顯示地返回一個值,那這個窗體應該在返回TRUE前調用SetWindoLong(hWndDlg,DWL_MSGRESULT,lpResult)函數更改想要返回的值.切記一定要馬上調用該函數在返回TRUE之前,盡可能早地通過DWL_MSGRESULT去改寫真正的Result,by a nested dialog box message.  他媽的這句怎么翻譯?


現在都開始懷疑弄這些消息有什么用,用MFC肯定是一個更好的選擇。在List Box里增加和刪除內容都是太煩了,都是通過SendMessage來完成的。不知道能堅持學到什么時候。

posted on 2008-10-07 21:42 祥子_隨波逐流 閱讀(2084) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            免费日韩成人| 欧美性猛交xxxx乱大交退制版| 国产精品美女999| 亚洲视频电影在线| 亚洲一区二区三区在线播放| 欧美性大战久久久久| 亚洲一级在线观看| 亚洲欧美国产视频| 国内精品久久国产| 亚洲国产高清在线观看视频| 欧美成人第一页| 一本色道久久综合亚洲精品高清| 日韩午夜激情| 国产午夜亚洲精品不卡| 久热re这里精品视频在线6| 免费永久网站黄欧美| 一本一道久久综合狠狠老精东影业| 一区二区三区精品在线| 国产九区一区在线| 欧美不卡福利| 欧美视频一区二区| 快播亚洲色图| 欧美人成免费网站| 久久成人精品| 欧美成人视屏| 欧美一区二区三区另类 | 亚洲一区中文| 久久精品欧美| 亚洲视频图片小说| 久久精品99国产精品酒店日本| 亚洲全部视频| 午夜精品区一区二区三| 亚洲日本aⅴ片在线观看香蕉| 日韩网站在线看片你懂的| 国产一级精品aaaaa看| 亚洲每日更新| 在线观看成人小视频| 国产精品99久久久久久久女警 | 欧美国产日韩精品| 久久精品日韩欧美| 欧美三级午夜理伦三级中视频| 久久久免费精品视频| 国产精品福利影院| 欧美成人国产va精品日本一级| 国产精品久久久久久av下载红粉| 免播放器亚洲| 国产精品一区视频| 日韩视频免费观看| 亚洲日本欧美在线| 久久免费精品视频| 久久久久久成人| 国产精品免费看久久久香蕉| 亚洲国产一区二区在线| 在线观看一区二区视频| 亚洲欧美国产日韩天堂区| 一区二区高清视频在线观看| 免费在线视频一区| 美女国产一区| 狠狠久久婷婷| 久久精品麻豆| 久久久久国产精品厨房| 国产精品一区二区a| 99在线|亚洲一区二区| av成人免费在线观看| 欧美大片一区二区| 亚洲电影观看| 日韩视频在线免费观看| 欧美成人高清| 欧美激情亚洲国产| 日韩视频欧美视频| 欧美日韩成人精品| 亚洲美女福利视频网站| 99精品欧美一区二区三区| 欧美久久婷婷综合色| 亚洲精品乱码久久久久久久久| 日韩午夜精品视频| 欧美日韩成人一区| 亚洲午夜激情网页| 久久精品国产亚洲高清剧情介绍 | 久久精品一区二区三区不卡牛牛| 欧美一级网站| 国产一区美女| 美日韩精品视频| 亚洲欧洲三级| 亚洲无亚洲人成网站77777| 欧美日韩在线看| 亚洲永久字幕| 蜜桃av一区| 99精品福利视频| 国产精品自在在线| 久久久久国产精品麻豆ai换脸| 欧美国产日韩一区二区| 在线视频欧美日韩| 国产精品伦一区| 久久久www成人免费毛片麻豆| 欧美大色视频| 午夜精品福利电影| 在线电影国产精品| 欧美日韩在线播放三区| 欧美诱惑福利视频| 亚洲人成亚洲人成在线观看| 亚洲欧美日韩天堂| 亚洲电影免费观看高清完整版在线观看| 久久男人资源视频| 一区二区三区视频在线观看 | 亚洲三级性片| 国产精品手机视频| 麻豆亚洲精品| 亚洲欧美日韩天堂| 亚洲国产欧美一区二区三区同亚洲 | 亚洲精品综合久久中文字幕| 国产精品高清一区二区三区| 久久久国际精品| 一本色道久久综合亚洲精品婷婷 | 欧美一区视频| 亚洲三级影片| 黑人一区二区| 国产精品拍天天在线| 欧美成人福利视频| 欧美一区二区三区在线观看| 亚洲精品欧美极品| 欧美高清视频www夜色资源网| 亚洲一区二区在线| 亚洲人在线视频| 激情久久一区| 国产欧美一区二区三区另类精品 | 欧美另类视频在线| 久久亚洲高清| 久久av一区二区三区漫画| 中文日韩欧美| 亚洲人体1000| 亚洲高清电影| 欧美高清在线一区| 老妇喷水一区二区三区| 午夜精品久久久久久久99热浪潮| 99精品99| 亚洲精选成人| 亚洲美女在线视频| 亚洲黄网站在线观看| 黄色日韩精品| 娇妻被交换粗又大又硬视频欧美| 国产精品一区二区你懂的| 欧美日韩午夜在线视频| 欧美破处大片在线视频| 欧美激情小视频| 欧美成人一二三| 欧美国产日韩精品免费观看| 欧美aaa级| 欧美精品福利视频| 欧美日韩第一区| 欧美日韩在线观看一区二区三区 | 免费观看在线综合色| 久久精品首页| 久久久久免费观看| 免费看av成人| 欧美国产亚洲另类动漫| 欧美金8天国| 欧美色图五月天| 国产精品色婷婷| 国产一区二区三区在线观看精品 | 欧美在线高清| 久久久久国产精品www| 久久视频在线视频| 欧美高清视频一区| 亚洲人被黑人高潮完整版| 亚洲理论电影网| 亚洲一区区二区| 久久精品中文字幕一区| 乱中年女人伦av一区二区| 欧美激情一区二区在线| 国产精品久久久久久久9999| 国产乱码精品1区2区3区| 黄色日韩精品| 日韩午夜电影| 欧美一区二区三区四区在线| 久久久久国产精品人| 亚洲二区视频| 亚洲小少妇裸体bbw| 久久精品在线播放| 欧美日韩一区二区视频在线| 国产欧美精品在线播放| 亚洲精品免费一二三区| 亚洲欧美精品| 欧美成人精品高清在线播放| 一区二区毛片| 卡通动漫国产精品| 国产精品乱码一区二三区小蝌蚪| 激情久久五月| 亚洲免费中文字幕| 欧美激情导航| 香蕉久久a毛片| 欧美日韩另类丝袜其他| 国产一区白浆| 亚洲一区亚洲| 欧美激情导航| 久久精品一区二区| 国产精品成人在线观看| 亚洲精品123区| 久久婷婷国产麻豆91天堂| 亚洲精品一区二区三区在线观看|