我用如下代码制按钮类:
class CAtlButton: public CWindowImpl<CAtlButton,CWindow>
{
public:
DECLARE_WND_CLASS(_T("BUTTON")) BEGIN_MSG_MAP(CMyWindow)
CHAIN_MSG_MAP(CAtlButton)
END_MSG_MAP()
HWND Create(HWND hwndparent,int nx,int ny,int nwidth,int nheight, DWORD dwStyle)
{
int nStyle=dwStyle;
if ((nStyle & WS_CHILD)==false)
nStyle|=WS_CHILD;
HWND hWnd=::CreateWindow("BUTTON",NULL,nStyle,nx,ny,nwidth,nheight,hwndparent,NULL,NULL,NULL);
this->SubclassWindow(hWnd);
ATLASSERT(m_hWnd==hWnd);
return hWnd;
}
};当我在主窗口OnCreate中用以下方法建立按钮时:
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
CAtlButton button1;
button1.Create(m_hWnd,0,0,60,20,WS_VISIBLE);
return 0;
}
程序就会出现问题请问在WTL中究竟怎么建立按钮类,请求高人指教,在下先表示谢了!
class CAtlButton: public CWindowImpl<CAtlButton,CWindow>
{
public:
DECLARE_WND_CLASS(_T("BUTTON")) BEGIN_MSG_MAP(CMyWindow)
CHAIN_MSG_MAP(CAtlButton)
END_MSG_MAP()
HWND Create(HWND hwndparent,int nx,int ny,int nwidth,int nheight, DWORD dwStyle)
{
int nStyle=dwStyle;
if ((nStyle & WS_CHILD)==false)
nStyle|=WS_CHILD;
HWND hWnd=::CreateWindow("BUTTON",NULL,nStyle,nx,ny,nwidth,nheight,hwndparent,NULL,NULL,NULL);
this->SubclassWindow(hWnd);
ATLASSERT(m_hWnd==hWnd);
return hWnd;
}
};当我在主窗口OnCreate中用以下方法建立按钮时:
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
CAtlButton button1;
button1.Create(m_hWnd,0,0,60,20,WS_VISIBLE);
return 0;
}
程序就会出现问题请问在WTL中究竟怎么建立按钮类,请求高人指教,在下先表示谢了!
解决方案 »
- 无法从注册表中读取中文?
- 在给对话框添加单选控件时,为什么CMyDlg会消失
- 关于COM接口初始化与释放的问题?
- 请高人指点:如何在SDK编程下屏蔽WebBrowser的右键菜单啊???超难啊......
- LNK2001: unresolved external symbol ___security_cookie 这个错误如何解决?
- 超级菜菜鸟的一个弄不明白问题,大家一起来打我吧!
- [求助]类VC界面问题!
- 请高手们看一下我的代码问题在哪里?
- ********************** 关于Socket编程 *******************************
- Debud Assertion Failed! 如何解
- 出现Please specify the executable file对话框的问题,请问如何解决呢??
- 求助
BEGIN_MSG_MAP(CMyWindow)
CHAIN_MSG_MAP(CAtlButton)
END_MSG_MAP()
改成这个 BEGIN_MSG_MAP(CAtlButton)
END_MSG_MAP()
然后 把button1设置为成员变量