1樓:網友
你沒理解window的意思啊,各個控制項視窗都是繼承自cwnd的。cwnd只有一些很基本的功能,如接收訊息等。
按你說的要求你應該繼承的是cdialog吧。
cdialog能不能不用resouce file 不大清楚啊。
直覺應該可以不用,但是我做的專案都用了。
你再看看cframewnd吧,這個肯定可以不用。
cwnd是mfc所有窗體的基類,功能當然不會太多,你想如果按鈕、文字框、對話方塊的功能都放進去這個類還怎麼寫。但是mfc本身有很多視窗元素的類是繼承cwnd的。cframewnd的建構函式和解構函式是公共成員你可以看上的宣告。
2樓:網友
cwnd物件接收到的windows通知訊息通過訊息對映被自動傳送到適當的cwnd onmessage成員函式。你可以在派生類中過載onmessage成員函式以處理成員的特定訊息。也就是說使用cwnd物件 需要自己寫訊息出來動作。
cdialog可以不依賴資源 其他資源必須動態new出來 比較麻煩。
為什麼我派生自cwnd 的類;建立視窗總是失敗
3樓:不一樣的
魔高丈 給例使用windows api函式 createwindowex 我應該應用派類呢。
如何用cwnd類的方法create來建立乙個獨立的
4樓:紛紛錒鑫
我前幾天剛實現了這個。**貼上!
#include
應用程式類。
public:
virtual bool initinstance();
視窗類。class courwnd: public cwnd
public:
courwnd()
建構函式。 create(0,l"我們的mfc程式!");
createex(0,afxregisterwndclass(
cs_hredraw | cs_vredraw,loadcursor (null, idc_arrow),(hbrush) getstockobject (white_brush),0),l"ssssssssssssssss", "splashwindow sample", ws_overlapped,ws_overlappedwindow,cw_usedefault, cw_usedefault, cw_usedefault, cw_usedefault,null,null,null);
實現類中的函式。
if(m_pmainwnd)
delete m_pmainwnd;
m_pmainwnd = null;
if(m_pmainwnd == null)
m_pmainwnd = new courwnd();
m_pmainwnd->showwindow(m_ncmdshow);
return true;
大致步驟,新建win32專案,然後在工程屬性中把使用標準windows庫改為在靜態庫或動態庫中使用mfc。**適用於vc2008 unicode工程中,如果是非unicode,請把字串常量前大寫的l去掉。
cwnd派生類裡m_hwnd為什麼總是為
5樓:網友
構造和create是兩回事。
構造是這個類物件的產生。 類物件只是用來儲存視窗資訊的, 對系統而言, 類物件並不是視窗, 類物件create才真正產生視窗。 如果你沒在某個地方呼叫這個create , 只是宣告個類物件是沒有視窗的。
再問關於cwnd繼承類例項析構問題,急求教,
6樓:等你等到心痛
因為基類的解構函式不是虛解構函式,所以是根據指標的型別呼叫解構函式,而不是根據指標指向物件的型別呼叫解構函式。
虛擬函式是在基類中被宣告為 virtual,並在派生類中重新定義的成員函式,可實現成員函式的動態過載。
當乙個類作為基類時,它的解構函式應該為虛解構函式。
cwnd::onrbuttondown 雙擊滑鼠只響應一次
7樓:網友
有個滑鼠雙擊時間的系統引數,通過時間間隔判斷是單擊還是雙擊。
如果程式設計思路允許的話,把onrbuttondown裡的**轉移寫到onrbuttonup裡。
8樓:網友
onrbuttondown這是右鍵單擊訊息。
mfc中怎麼獲取cwnd的派生類的指標
9樓:網友
mfc中得到掘友帆某個視窗類的指標,有不同的辦法,需要根據你當前所在位置和需要判雹獲取的視窗屬性來確定。
比如afxgetmainwnd() mdigetactive() getactiveframe() getfirstviewposition()等等。
誰能講一下c++中的類「cwnd」?
10樓:匿名使用者
cwnd是mfc的乙個視窗類,這個類裡幾乎封裝了所有關於視窗操作的api函式。
另外很多視窗類都是繼承於這個類,如cbuttn 按鈕類,cstatic clistbox等等。
關於c派生類中虛擬函式的問題,C 已經在派生類中重定義了抽象類中的純虛擬函式,為什麼還不讓我用派生類定義物件!?
如果是虛擬函式的話,在派生類中重新定義其函式體時,不會導致同名覆蓋.當用基類指標指向派生類物件並呼叫虛擬函式時,執行的是在派生類中重新定義的虛擬函式的函式體.虛擬函式必須要在基類用virtual修飾才能為虛擬函式,派生類若重定義該函專數,則無論是否有屬virtual關鍵字都是虛擬函式。你要判斷派生類...
基類派生類的同名成員變數覆蓋問題
你的理解基本很對了。基類的那個print只能訪問基類的 a,訪問不到派生類的 a的。是這個意思,可以再看看虛擬函式的相關內容可能能理 回解更深刻一些。答 c 派生類成員覆蓋基類成員的問題 include using namespace std class a a a void a print cla...
C 的基類如何訪問其派生類的成員變數
直接訪問靜態變數肯定不行,但可以變通一下,通過虛擬函式獲得這個內靜態變數 給你個容例子,這樣是不是滿足你的要求?但這樣的話,每個繼承類都要做2件事 1.定義靜態變數 2.重寫虛擬函式,返回自己的靜態變數 這2件事可以通過巨集來做。mfc好象就是這麼幹的 include class a class b...