Posted on 2013-04-07 14:33
盛勝 閱讀(368)
評論(0) 編輯 收藏 引用
vc 如何建動態按鈕
在類的定義中,定義如下變量
那么在類的成員函數中就可以使用了如下來創建按鈕。
- m_btn.Create("動態創建的按鈕",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);
注,創建第二次的時候會出錯。所以要用。
來釋放再進行創建。
借由這個動態創建,弄清了一些MFC的構架,MFC是基于所有的類而得出的成果,一個類派生與另一個基類,從CWnd到CDialog就是一個很好的例子。CDialog派生與CWnd。
如果我要創建一個按鈕,就必須用CDialog定義一個新的變量,這個變量就成了一個按鈕,我就可以利用這個按鈕類進行 各類操作,例如定義其的大小,風格。
皆由此可見,所有的窗口都是一個類定義來的。無論是按鈕,標簽,ComBox,List等等,都可以使用這個方法進行創建。
在編輯代碼方面,VC與VB就有了,對于用戶來說,就有了本質上的差別,VB的或許更加方便,而VC需要處理的細節太多了。
//創建按鈕
CButton *m_pBt1 = new CButton();
ASSERT_VALID(m_pBt1);
m_pBt1-> Create(_T("進入[A]"), WS_GROUP ¦WS_CHILD ¦WS_VISIBLE ¦BS_PUSHBUTTON, CRect(10,10,20,20), this, IDC_AUTOCUT_POSTEACH );
m_pBt1-> MoveWindow(0, 152, 100, 100);
//修改風格
HWND hwnd=m_pBt1-> GetSafeHwnd();
long lStyle=GetWindowLong(hwnd,GWL_EXSTYLE);
SetWindowLong(hwnd,GWL_EXSTYLE,lStyle ¦WS_EX_DLGMODALFRAME);
::SetWindowPos(hwnd,0, 12, 55, 55, 111, SWP_NOREPOSITION ¦SWP_NOACTIVATE ¦SWP_NOMOVE ¦SWP_FRAMECHANGED);