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

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>
            99re6这里只有精品视频在线观看| 国产乱码精品一区二区三区忘忧草 | 宅男噜噜噜66一区二区66| 欧美高清在线播放| 艳妇臀荡乳欲伦亚洲一区| 日韩午夜剧场| 国产精品爱久久久久久久| 欧美一区二区成人| 欧美在线播放高清精品| 黄色一区二区三区四区| 欧美黄色视屏| 欧美体内谢she精2性欧美| 亚洲欧美国产制服动漫| 亚洲一区二区三区四区视频 | 欧美一区二视频| 红桃视频亚洲| 最新日韩中文字幕| 欧美日韩ab片| 欧美中文字幕在线视频| 久久综合国产精品| 一本色道久久综合| 欧美在线日韩精品| 亚洲欧洲日韩在线| 亚洲午夜激情网页| 在线免费观看一区二区三区| 亚洲国产精品一区二区三区| 国产精品国产| 欧美不卡三区| 国产精品视频一区二区高潮| 欧美成人精品激情在线观看| 欧美偷拍另类| 欧美不卡视频一区发布| 国产精品美女久久久浪潮软件| 久久免费观看视频| 欧美日韩视频专区在线播放| 久久精品国产v日韩v亚洲| 欧美黄免费看| 久久一二三四| 欧美新色视频| 亚洲国产经典视频| 精品不卡在线| 亚洲永久字幕| 亚洲视频自拍偷拍| 美女脱光内衣内裤视频久久影院| 亚洲在线1234| 欧美日韩大片| 欧美大尺度在线观看| 国产麻豆精品在线观看| 一区二区三区免费观看| 91久久精品国产91久久| 久久久久久夜| 久久视频一区二区| 国产精品综合色区在线观看| 亚洲欧洲日本国产| 亚洲三级视频| 两个人的视频www国产精品| 久久精品国产亚洲aⅴ| 国产精品xvideos88| 亚洲精品四区| 亚洲美女av网站| 欧美大片在线影院| 欧美激情影音先锋| 亚洲高清不卡| 欧美成人精品三级在线观看| 欧美成人午夜激情在线| 在线日韩一区二区| 久久蜜臀精品av| 欧美成人一区二区三区| 亚洲欧洲偷拍精品| 欧美mv日韩mv亚洲| 亚洲国产日韩欧美一区二区三区| 在线精品视频一区二区| 蜜臀99久久精品久久久久久软件| 欧美国产综合视频| 日韩一二在线观看| 国产精品v欧美精品v日韩 | 中文av一区特黄| 亚洲一二三区视频在线观看| 欧美日韩一区二区国产| 亚洲香蕉网站| 久久久国产成人精品| 韩国一区二区三区在线观看| 久久女同精品一区二区| 欧美大片专区| 99国产精品久久久久久久久久| 欧美母乳在线| 亚洲中午字幕| 欧美bbbxxxxx| 亚洲一区亚洲二区| 国产一区在线看| 欧美激情一区二区在线| 一区二区三区精密机械公司 | 亚洲黄色一区| 午夜精品美女自拍福到在线| 国内精品亚洲| 欧美喷水视频| 欧美在线视频a| 91久久国产综合久久91精品网站| 亚洲天堂av综合网| 好男人免费精品视频| 欧美精品免费在线观看| 欧美一区二区三区久久精品茉莉花| 久久久久免费视频| 亚洲视频每日更新| 一区二区三区在线免费视频| 欧美日韩精品在线播放| 欧美一区二区三区精品| 亚洲美女一区| 米奇777在线欧美播放| 亚洲一区二区3| 亚洲成色精品| 国产欧美日韩综合一区在线播放| 美女被久久久| 久久高清一区| 亚洲一区二区三区精品动漫| 欧美激情导航| 久久免费精品日本久久中文字幕| 中文在线资源观看网站视频免费不卡 | 国产精品视频yy9099| 欧美成人蜜桃| 久久精品视频亚洲| 亚洲午夜伦理| 亚洲美女中文字幕| 亚洲第一福利视频| 老司机精品视频网站| 欧美一级专区| 亚洲淫性视频| 亚洲视频第一页| 9久草视频在线视频精品| 伊人婷婷欧美激情| 国产九九精品视频| 欧美视频一区在线| 欧美日韩一区精品| 欧美精品一区二区三区蜜臀| 久久综合99re88久久爱| 久久久免费观看视频| 欧美一级在线亚洲天堂| 午夜精品久久久久久久99黑人| 亚洲视频一区二区| 中日韩美女免费视频网址在线观看 | 久久精品国产视频| 久久国产精品久久精品国产| 亚洲欧美日韩国产成人| 亚洲一区二区三区四区在线观看| 一本久道综合久久精品| 一区二区黄色| 一区二区三区精品久久久| 亚洲精品一区中文| 亚洲激情一区| 99re6热在线精品视频播放速度| 91久久久久久国产精品| 亚洲美女电影在线| 在线视频亚洲一区| 亚洲综合色婷婷| 欧美在线电影| 久热精品在线视频| 亚洲第一视频| 亚洲久久成人| 亚洲欧美日韩精品久久| 欧美综合77777色婷婷| 久久蜜桃香蕉精品一区二区三区| 久久综合九色99| 欧美日韩黄视频| 国产精品综合不卡av| 精品9999| 一本色道久久综合亚洲精品不卡| 一本色道久久综合亚洲二区三区| 亚洲一区二区三区在线看| 欧美亚洲综合久久| 蜜臀av性久久久久蜜臀aⅴ| 亚洲国产精品va在线看黑人动漫 | 欧美黄色一区| 日韩视频中文| 欧美一区二区三区在线| 免费在线观看精品| 国产精品伦一区| 在线观看精品一区| 亚洲一区二区不卡免费| 久久一区欧美| 99re66热这里只有精品3直播| 亚洲欧美国产精品桃花| 女人色偷偷aa久久天堂| 国产欧美精品一区aⅴ影院| 亚洲国产一区二区三区在线播 | 亚洲女同性videos| 欧美**字幕| 亚洲一区精品视频| 美女黄毛**国产精品啪啪| 国产精品嫩草99av在线| 亚洲福利视频在线| 欧美在线播放高清精品| 亚洲黄色av| 久久av在线看| 国产精品婷婷| 中文网丁香综合网| 欧美黄色影院| 久久久夜夜夜| 国产亚洲综合在线| 亚洲一区免费| 亚洲人成人一区二区在线观看|