bool CCEGLView::Create(LPCTSTR pTitle, int w, int h)
{ bool bRet = false;
do
{ CC_BREAK_IF(m_hWnd);
HINSTANCE hInstance = GetModuleHandle( NULL );
WNDCLASS wc; // Windows Class Structure
// Redraw On Size, And Own DC For Window.
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wc.lpfnWndProc = _WindowProc; // WndProc Handles Messages
wc.cbClsExtra = 0; // No Extra Window Data
wc.cbWndExtra = 0; // No Extra Window Data
wc.hInstance = hInstance; // Set The Instance
wc.hIcon = LoadIcon( NULL, IDI_WINLOGO ); // Load The Default Icon
wc.hCursor = LoadCursor( NULL, IDC_ARROW ); // Load The Arrow Pointer
wc.hbrBackground = NULL; // No Background Required For GL
//wc.lpszMenuName = NULL; // We Don't Want A Menu
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); // 加载自定义资源菜单
wc.lpszClassName = kWindowClassName; // Set The Class Name
CC_BREAK_IF(! RegisterClass(&wc) && 1410 != GetLastError());
// center window position
RECT rcDesktop;
GetWindowRect(GetDesktopWindow(), &rcDesktop);
//hmenu=LoadMenu(hInstance,MAKEINTRESOURCE(IDR_MENU1));
// create window
m_hWnd = CreateWindowEx(
WS_EX_APPWINDOW | WS_EX_WINDOWEDGE, // Extended Style For The Window
kWindowClassName, // Class Name
pTitle, // Window Title
WS_CAPTION | WS_POPUPWINDOW | WS_MINIMIZEBOX, // Defined Window Style
0, 0, // Window Position
0, // Window Width
0, // Window Height
NULL, // No Parent Window
NULL, // No Menu
hInstance, // Instance
NULL );
.......
Windows平台条件下,Cocos2dx所创建的屏幕窗口,是在定义和管理窗口的CCEGLView类当中, CCEGLView::Create(LPCTSTR pTitle, int w, int h)成员函数定义了程序启动时候,所创建窗口的标题和大小。虽然程序中我们后面修改了窗口对象的定义,在菜单名成员变量当中增加了自定义的资源菜单作为窗口的类型:
//wc.lpszMenuName = NULL; // We Don't Want A Menu
wc.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1); // 加载自定义资源菜单
加载了自定义的资源菜单,(或者是窗口创建之后采用手工菜单项逐一添加),但是无论如何,目前都没有菜单项出现。