ATL Activex 右击菜单

        今天想了解下ATL 的acitvex基本开发,实现了基本的js调用里面的方法,后来添加了右键菜单代码如下

 1 LRESULT CClassName::OnRButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
 2 {
 3     // TODO: 在此添加消息处理程序代码和/或调用默认值
 4     HMENU hMenu;
 5     hMenu=CreatePopupMenu(); 
 6     AppendMenu(hMenu, MF_STRING, 1, L"test1");
 7     AppendMenu(hMenu, MF_STRING, 2, L"test2");
 8     POINT ptDown;
 9     GetCursorPos(&ptDown);
10     TrackPopupMenu(hMenu,TPM_TOPALIGN | TPM_RETURNCMD,ptDown.x,ptDown.y,NULL,m_hWnd,NULL); 
11     return 0;
12 }

    结果菜单就是弹不出来,,,调试发现是m_hWnd句柄为NULL导致。
    小弟不才使用了下面2种解决方法:
   1.重新获取下m_hWnd.
   2.在CClassName构造函数里面添加下面一行代码解决问题。

1 m_bWindowOnly   =   TRUE;

  

posted @ 2014-04-10 11:29  smart727  阅读(309)  评论(0编辑  收藏  举报