使用:VS2008,Win32,C/C++如何在課堂內正確使用結構?
我想封裝我的整個對話框窗口到一個類的可重用性。有點像自定義控件。在這樣做的過程中,我將我的獨立功能轉化爲一個班級。下面的結構設計雖然給了我一些問題,但Visual Studio輸出:錯誤C2334'{'。
這是一個簡單的消息映射佈局。但我似乎無法逃避這個C2334錯誤。 :(
這裏是我的類代碼段。
class CScrollingListDlg
{
private:
LRESULT DoCommandMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
LRESULT DoPaintMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
LRESULT DoAnimationTimer (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
LRESULT DoHandleTouch (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
LRESULT DoDestroyMain (HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam);
//
// message maps
//
// Generic defines and data types.
struct decodeUINT {
UINT Code;
LRESULT (*Fxn)(HWND, UINT, WPARAM, LPARAM);
};
struct decodeCMD {
UINT Code;
LRESULT (*Fxn)(HWND, WORD, HWND, WORD);
};
// WM_Message dispatch table for MainWndProc.
//
// *** error C2334 '{' ***
//
const struct decodeUINT MainMessages[] = {
WM_PAINT, DoPaintMain,
WM_DESTROY, DoDestroyMain,
WM_QUIT, DoDestroyMain,
WM_COMMAND, DoCommandMain,
};
};
缺少什麼我在這裏?
感謝。
+1。如果需要執行每個對象的消息分派,這是一個明智的方法,但數組上的常量表明OP希望始終調用相同的函數。在這種情況下,使用靜態數組成員更加高效和方便(請參閱我的答案)。 – 2009-04-20 16:43:09
特別是因爲MainMessages被聲明爲const,所以我懷疑靜態數組是什麼需要的。 – Eclipse 2009-04-20 16:51:54