动态创建的一个按钮
CButton* m_pButton;
m_pButton =new CButton;
m_pButton->Create
("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect
(10,10,80,50),this,104)
它的id是104???
GetDlgItem(104)???
我该如何获得它的句柄从而对他进行进一步的操作,比方说更改标题等等。
CButton* m_pButton;
m_pButton =new CButton;
m_pButton->Create
("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect
(10,10,80,50),this,104)
它的id是104???
GetDlgItem(104)???
我该如何获得它的句柄从而对他进行进一步的操作,比方说更改标题等等。
更改標題可以m_pButton->SetWindowText("Button1");
//可以直接使用该句柄
//创建Microphone按钮
HWND m_hwndMicButton = CreateWindow(TEXT("button"), TEXT(""),
WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
m_ptMicButtonPos.x, m_ptMicButtonPos.y, m_iWidthMicButton, m_iHeightMicButton,
m_hWnd, (HMENU)ID_MICBUTTON, m_hInst, NULL);
SetWindowLong(m_hwndMicButton, GWL_USERDATA, (long)this);
CreateButton
{
CButton* MyButton;
MyButton=new CButton;
MyButton->Create(lpszCaption, dwStyle, rect, this, nID);
} 调用的时候直接用类名调用这个函数CreateButton(....)这样的话,句柄。?????
GetDlgItem(104)是可以的。。
但是104这个值是否已经在resource.h中被其他资源占用了?所以最好你先在resource.h中定义好该ID#define IDC_MYCREATE_BUTTON 200然后再
m_pButton->Create
("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect
(10,10,80,50),this,IDC_MYCREATE_BUTTON);这样可以避免ID冲突
CButton* m_pButton;
m_pButton =new CButton;
m_pButton->Create
("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect
(10,10,80,50),this,104)
然后再进行操作的话,例如GetDlgItem(104)->SetWindowText("Button1");这样就会更改按钮的标题。
但是像我上面说的现在一个类里面封装了上面几句话,然后调用。
CMyClass *class=new CMyClass();
class->CreateButton
("Button",WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect
(10,10,80,50),this,104);
这样的话GetDlgItem(104)->SetWindowText("Button1");就会出错的
class-〉GetDlgItem(104)->SetWindowText("Button1");就可以成功调用,谢谢大家!