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

Dragon  
Dragon
日歷
<2008年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011
統計
  • 隨筆 - 58
  • 文章 - 0
  • 評論 - 55
  • 引用 - 0

導航

常用鏈接

留言簿(3)

隨筆分類(58)

隨筆檔案(58)

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

        這是一篇自己理解所寫的文章,若我有哪些地方理解不正確的,請指出,不想誤導讀者。
        在可視化的消息中,我們會發現他三個地方加了代碼,但有的不同,在頭文件中加的不是afx_msg開頭,而用virtual,如OnOK
函數。一般加的代碼的步驟是:
1.在頭文件中加心afx_msg 開頭的函數聲明.
2.在實現文件的BEGIN_MESSAGE_MAP和END_MESSAGE_MAP()之間加ON_WM_或ON_MESSAGE的代碼
3.最后還是在實現文件里加函數的實現


        但我還是有點不理解,最后想自己寫一個自定義的消息映射程序,雖然沒有寫出來,但還是根據這些來猜這機制的執行原理,這些
程序都是上網查到的,
1.在頭文件加:
  #define WM_MYMSG  WM_USER+5//自定義一個消息
  afx_msg void OnMyMessage(WPARAM wParam, LPARAM lParam); //自定義消息的處理函數聲明


2.在實現文件里加:
  ON_MESSAGE(WM_MYMSG, OnMyMessage)
  //利用ON_MESSAGE()宏在自定義消息與其處理函數間建立映射關系


void CModelessDlg::OnMyMessage(WPARAM wParam, LPARAM lParam)
//從lParam中取出CString對象的指針,并將字符串內容在IDC_MSGEDIT中顯示出來
{

    CString *str;
    str=(CString *)lParam;

    SetDlgItemText(IDC_EDIT,*str);
}


void CModelessDlg::OnMsgBTN()
{

 CString str= "自定義消息被觸發了!";

 SendMessage(WM_MYMSG, 0, (LPARAM) &str);
 //給ModelessDlg自己發一個自定義的消息
}

        我的理解:它是根據WM_MYMSG來確定參數的值的(wParam,lParam),對于每一個消息操作函數來確定他的參數的,這里的SendMessage函數把WM_MYMSG與(wParam)0和(lParam)&str捆綁在一起了,所以,在我們用消息處理函數OnMyMessage()時,我們若要用到參數時我們就可以用這兩個參數,在這的參數位置應該不可以改變的吧,我猜的.
后來看到一本書,自定義的消息函數一般帶wParam,lParam這兩個參數,加下面一段代碼增加理解:

暫時理解消息函數是通過消息(WM_)對應的參數(wParam.lParam).

BOOL CServerDlg::PreTranslateMessage(MSG* pMsg)
{
 if (pMsg->message == WM_SOCKET)
 {
  m_sockCur = pMsg->wParam;
  m_nCurMsg = pMsg->lParam;
 }
 return CDialog::PreTranslateMessage(pMsg);
}
通過WM_SOCKET關聯 pMsg->wParam和pMsg->lParam。
         但當我在用WSAAsyncSelect函數時沒有看到他的消息參數(假如在這里是WM_SOCKET_READ)未與一些參數關聯在一起,而且這個參數還是我自定義的,不是系統本身有的,它是用來接收消息的參數的,后來我查MSDN時發現他的描述是這樣的:
  
   When one of the nominated network events occurs on the specified socket s, the application's window hWnd receives message wMsg. The wParam parameter identifies the socket on which a network event has occurred. The low word of lParam specifies the network event that has occurred. The high word of lParam contains any error code. The error code be any error as defined in Winsock2.h.

Note  Upon receipt of an event notification message, the WSAGetLastError function cannot be used to check the error value because the error value returned can differ from the value in the high word of lParam.

The error and event codes can be extracted from the lParam using the macros WSAGETSELECTERROR and WSAGETSELECTEVENT, defined in Winsock2.h as:

#define WSAGETSELECTERROR(lParam)       HIWORD(lParam)
#define WSAGETSELECTEVENT(lParam)       LOWORD(lParam)

    當一個指定的網絡事件發生在指定的套接字s上時,應用程序的窗口句柄接收到一條消息wMsg,wParam識別網絡事件發生在哪一個套接字上,lParam的低字段則指定發生的網絡事件,高字段包括任意的錯誤代碼,錯誤代碼在Winsock2.h文件中定義.
    這事件和錯誤可以從lParam通過調用宏WSAGETSELECTERROR 和 WSAGETSELECTEVENT提取,在Winsock2.h文件中定義為:
    #define WSAGETSELECTERROR(lParam)       HIWORD(lParam)
    #define WSAGETSELECTEVENT(lParam)       LOWORD(lParam)


可以看出WSAAsyncSelect收到的參數還是在其它地方作過關聯的,不然它也不會有值(wParam,lParam),這是我的推理,未證實.
   
typedef UINT WPARAM;(wParam的類型,w表示WORD)
typedef LONG LPARAM;(lParam的類型,l表示LONG)

posted on 2008-09-02 19:59 Dragon 閱讀(545) 評論(0)  編輯 收藏 引用 所屬分類: VC
 
Copyright © Dragon Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美在线1区| 亚洲欧美日韩在线一区| 91久久精品www人人做人人爽| 老鸭窝毛片一区二区三区| 99视频一区| 欧美激情小视频| 亚洲一区二区三区四区在线观看 | 亚洲人成小说网站色在线| 久久综合导航| 欧美一区日本一区韩国一区| 亚洲毛片一区二区| 欧美午夜精品久久久久免费视| 亚洲第一视频| 亚洲精选中文字幕| 欧美亚洲专区| 99国产精品视频免费观看一公开| 欧美www视频| 欧美在线视频导航| 久久午夜电影网| 狠狠色综合色区| 久久国产夜色精品鲁鲁99| 亚洲欧美bt| 欧美日韩一区二区在线 | 欧美一区二区三区免费视频| 蜜桃久久精品乱码一区二区| 免费欧美视频| 欧美日韩性生活视频| 亚洲国产一区二区a毛片| 国语精品一区| 欧美精品高清视频| 午夜精品国产精品大乳美女| 亚洲国产精品久久精品怡红院| 欧美一级播放| 欧美伊人久久大香线蕉综合69| 久久久久久国产精品一区| 国产精品永久免费| 久久伊人精品天天| 久久www成人_看片免费不卡| 亚洲精品欧美日韩专区| 亚洲欧美日本国产专区一区| 国产精品乱码一区二三区小蝌蚪| 亚洲精品影院在线观看| 极品日韩久久| 欧美不卡福利| 久久精品盗摄| 欧美精品久久久久久久免费观看| 亚洲激情一区二区三区| 亚洲国产精品电影在线观看| 亚洲欧美在线磁力| 久久一区国产| 最近中文字幕日韩精品| 欧美黄在线观看| 亚洲高清一二三区| 亚洲一区三区视频在线观看| 欧美在线视频二区| 亚洲国产高清一区二区三区| 亚洲欧洲综合另类在线| 国产在线国偷精品产拍免费yy| 国产乱子伦一区二区三区国色天香| 国产精品久久久久久久久借妻| 亚洲一区国产一区| 亚洲午夜电影在线观看| 香蕉免费一区二区三区在线观看| 欧美亚洲视频| 欧美激情亚洲精品| 国产日韩在线播放| 亚洲日本电影在线| 日韩视频不卡| 欧美承认网站| 日韩亚洲欧美综合| 久久精品国产91精品亚洲| 欧美成人久久| 国产三级精品在线不卡| 亚洲激情影视| 欧美制服丝袜| 欧美精品粉嫩高潮一区二区 | 加勒比av一区二区| 亚洲美女免费精品视频在线观看| 在线日韩av永久免费观看| 日韩网站免费观看| 欧美一级久久久| 噜噜噜久久亚洲精品国产品小说| 久久成人精品一区二区三区| 久久综合色一综合色88| 一本色道久久综合| 欧美日韩在线播| 国产精品系列在线播放| 久久精品国产77777蜜臀| 亚洲综合色噜噜狠狠| 欧美日韩mp4| 久久五月激情| 国产欧美一区二区精品忘忧草| 亚洲午夜羞羞片| 99热这里只有精品8| 欧美国产日韩在线观看| 久久久久久伊人| 欧美日韩国产免费| 夜夜嗨av一区二区三区中文字幕| 欧美一区二区黄| 欧美国产在线视频| 欧美国产三区| 亚洲一卡二卡三卡四卡五卡| 欧美成人一二三| 欧美视频一区二区三区| 午夜精品一区二区三区四区 | 国产精品久久久久久久久久久久久| 亚洲一区二区三区色| 久久久国产一区二区| 亚洲综合第一页| 免费成人美女女| 久久久久国产精品www| 国产精品乱码| 日韩一级欧洲| 欧美色另类天堂2015| 欧美成人精品三级在线观看 | 欧美一级黄色网| 欧美在线免费视频| 一区二区三区视频在线播放| 噜噜噜噜噜久久久久久91| 午夜精品久久久久久久久| 欧美劲爆第一页| 亚洲国产裸拍裸体视频在线观看乱了| 国产美女一区二区| 亚洲免费大片| 亚洲精品偷拍| 免费不卡欧美自拍视频| 99re6这里只有精品视频在线观看| 欧美婷婷久久| 美女诱惑黄网站一区| 久久久人成影片一区二区三区观看| 欧美激情一区二区在线 | 狠狠色噜噜狠狠狠狠色吗综合| 亚洲视频精选| 一区二区av| 快射av在线播放一区| 国产精品久久久久久久久借妻| 亚洲欧洲日本国产| 91久久精品美女| 女人香蕉久久**毛片精品| 牛牛国产精品| 亚洲国产精品国自产拍av秋霞| 久久久久久尹人网香蕉| 你懂的网址国产 欧美| 亚洲国产成人精品久久| 久久免费精品日本久久中文字幕| 久久一区精品| 亚洲国产精品ⅴa在线观看 | 国产在线精品一区二区夜色| 先锋影音久久久| 欧美在线精品免播放器视频| 国产欧美婷婷中文| 久久99伊人| 免费成人性网站| 亚洲三级网站| 欧美午夜精品久久久| 亚洲欧美日韩视频一区| 久久日韩粉嫩一区二区三区| 在线日韩中文| 欧美国产一区在线| 午夜精品偷拍| 国产亚洲综合精品| 久久综合给合| 亚洲靠逼com| 亚洲欧美成人在线| 狠狠色伊人亚洲综合网站色| 免费在线成人| 亚洲美女在线看| 久久精品1区| 91久久精品日日躁夜夜躁欧美 | 在线观看成人一级片| 美女主播精品视频一二三四| 亚洲欧洲综合| 性色av一区二区三区红粉影视| 激情久久五月天| 亚洲女同性videos| 亚洲高清在线精品| 欧美亚洲视频| 亚洲国产日韩欧美| 国产精品成人一区二区艾草| 久久久久一区二区三区四区| 亚洲欧洲综合| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲精品影院| 国产在线不卡| 亚洲欧美日韩国产一区二区三区| 久久精品一区蜜桃臀影院 | 欧美激情麻豆| 亚洲自拍偷拍福利| 亚洲黄页一区| 久久性天堂网| 亚洲一二三区精品| 一区久久精品| 国产女同一区二区| 欧美激情一区二区三区四区| 午夜精品福利视频| 亚洲精品永久免费精品| 麻豆视频一区二区| 久久国产免费看| 亚洲午夜一区二区三区| 亚洲国产91|