日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:win10系統下載站 > 技術開發教程 > 詳細頁面

讓動態創建的ActiveX控件響應Windows消息

讓動態創建的ActiveX控件響應Windows消息

更新時間:2019-04-27 文章作者:未知 信息來源:網絡 閱讀次數:

當我們通過CWnd::CreateControl()動態創建ActiveX控件時,Windows消息并不會被發送給我們的由CWnd派生得控件類。例如,即使我們為WM_KILLFOCUS消息創建了句柄,這個句柄也是不會被調用的。(不信你試試 :))

引起這個問題的原因時,CWnd::CreateControl()并不會使我控件的HWND子類化。

知道了原因,要解決問題就不難了。我們只要在控件創建之后使它子類化就行了。通過一下步驟可以實現:

1.當然是添加控件啦,先生成控件的C++包容類。

2.再要創建控件的類中聲明成員變量,此成員變量是包容類的指針對象。

3.在包容類的頭文件中添加:

//{{AFX_MSG(CMyClass)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()

CMyClass是實際的類名。

4.在包容類的CPP文件的#include段下面添加:

BEGIN_MESSAGE_MAP(CMyClass, CWnd)
    //{{AFX_MSG_MAP(CMyClass)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

5.刪除工程目錄下的.clw文件,在工程中打開ClassWizard,先選yes,在選Add All。

6.現在你就可以使用ClassWizard為控件包容類添加消息映射和處理函數了。

完成這些修改后,你必須創建控件并且使它子類化,下面是個例子:

void CSDIApp2View::OnInitialUpdate()
{
CView::OnInitialUpdate();

m_pFlexGrid = new CMSFlexGrid;

CRect rect;
GetClientRect(&rect);
m_pFlexGrid->Create(NULL, WS_CHILD | WS_VISIBLE, rect, this, IDC_FLEXGRID);
HWND hWnd = m_pFlexGrid->Detach();
m_pFlexGrid->SubclassWindow(hWnd);

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 三级aa| 日韩一区二区三区免费 | 15yc宅男最新地址 | 狼人 成人 综合 亚洲 | 青青网在线视频 | 黄网站色视频免费观看w | 日本xxwwxxww视频免费丝袜 | 国产精选视频 | 国产一区二区在线免费观看 | 91久久精品一区二区三区 | 亚洲国产欧美国产第一区 | 欧洲色吧| 99热久久国产精品这里有9 | 成人在线免费 | 亚洲一区二区三区四区在线 | 欧美性猛交xxxx | 亚洲小视频在线播放 | 国产精品福利久久 | 男人私gay网站国产 男人私人影院免费看视频 男人天堂1024 | 亚洲 欧美 另类 天天更新影院 | 在线观看视频www在线观看 | 99久久精品国产一区二区成人 | 亚洲精品图区 | 国产精品欧美日韩 | 128tv国产福利高清在线视频 | 波多野结衣一区二区三区 | 亚洲区欧美区 | 国产精品第页 | 亚洲日韩中文字幕一区 | 四虎影库网址 | 亚洲韩国在线 | 99热久久这里只精品国产 | 97精品国产自在现线免费观看 | 男人与女人真正曰批视频 | 欧美日韩国产另类一区二区三区 | 日本性插 | 韩国日本香港毛片免费 | 国产精品久久久久久久福利院 | 日本不卡免费新一区二区三区 | 日本a级特黄三级三级三级 日本a级做爰视频 | 美女精品永久福利在线 |