請教CWnd派生類的問題

2025-01-19 09:00:30 字數 2629 閱讀 8549

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...