Thread: Menu Problem

  1. #1
    Registered User
    Join Date
    Jul 2007
    Posts
    53

    Menu Problem

    Hi,

    I'm having a problem with my menu. It somehow displays my menu strings in another language and I don't know why.

    Here's my code:
    Code:
    //resource.h
    #define ID_FILE_SYNCHRONIZE			4000
    #define ID_FILE_UNSYNCHRONIZE       4001
    Code:
    #include <windows.h>
    #include <mmsystem.h>
    #include "resources.h"
    
    LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
    
    int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, 
    					PSTR szCMLine, int iCmdShow)
    {
    	static TCHAR szAppName[] = TEXT ("WindowOneApplication");
    	HWND hwnd;
    	MSG	msg; 
    	WNDCLASS wndclass;
    
    	wndclass.style		= CS_HREDRAW | CS_VREDRAW;
    	wndclass.lpfnWndProc = WndProc;
    	wndclass.cbClsExtra	= 0;
    	wndclass.cbWndExtra = sizeof(long);
    	wndclass.hInstance	= hInstance;
    	wndclass.hIcon		= LoadIcon (NULL, IDI_APPLICATION);
    	wndclass.hCursor	= LoadCursor (NULL, IDC_ARROW);
    	wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
    	wndclass.lpszMenuName = NULL;
    	wndclass.lpszClassName = szAppName;
    
    	if (!RegisterClass (&wndclass))
    	{
    		MessageBox (NULL, TEXT ("This program requires Windows 95/98/NT"),
    					szAppName, MB_ICONERROR);
    		return 0;
    	}
    
    	hwnd = CreateWindow(szAppName,		
    						TEXT("Program 1"), 
    						WS_OVERLAPPEDWINDOW,	
    						CW_USEDEFAULT,		
    						CW_USEDEFAULT,		
    						400,		
    						300,		
    						NULL,				
    						NULL,				
    						hInstance,			
    						NULL);				
    
    	ShowWindow(hwnd, iCmdShow);
    	UpdateWindow(hwnd);
    
    	while (GetMessage(&msg, NULL, 0, 0)){
    		TranslateMessage(&msg);
    		DispatchMessage(&msg);
    	}
    
    	return msg.wParam;
    }
    
    LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	HMENU hMenu, hSubMenu;
    	HDC		hdc;
    	PAINTSTRUCT ps;
    	RECT	rect;
    
    	switch (message){
    		case WM_CREATE:
    			PlaySound(TEXT("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC);
    			return 0;
    
    		case WM_PAINT:
    			hMenu = CreateMenu();
    
    			hSubMenu = CreatePopupMenu();
    			//AppendMenu(hSubMenu, MF_STRING, ID_FILE_NEW, "&New");
    			AppendMenu(hSubMenu, MF_ENABLED, ID_FILE_SYNCHRONIZE, "&Sychronize");
    			AppendMenu(hSubMenu, MF_ENABLED, ID_FILE_SYNCHRONIZE, "&UNSychronize");
    			AppendMenu(hMenu, MF_STRING | MF_POPUP, (UINT)hSubMenu, "&Mode");
    
    			SetMenu(hwnd, hMenu);
    			//paint
    			hdc = BeginPaint(hwnd, &ps);
    
    			GetClientRect(hwnd, &rect);
    
    			DrawText(hdc, TEXT("Hello, Windows"), -1, &rect,
    					DT_SINGLELINE | DT_CENTER | DT_VCENTER);
    
    			
    			EndPaint(hwnd, &ps);
    			return 0;
    		case WM_DESTROY:
    			PostQuitMessage(0);
    			return 0;
    	}
    
    	return DefWindowProc(hwnd, message, wParam, lParam);
    }

  2. #2
    Frequently Quite Prolix dwks's Avatar
    Join Date
    Apr 2005
    Location
    Canada
    Posts
    8,057
    What does it output, exactly? Does it look like a different language, or is it perhaps just a buffer overrun?

    Where did you get that code from? Or did you write it yourself?

    I'm not a Windows programmer so I'm afraid I can't really help you any more that this . . .
    dwk

    Seek and ye shall find. quaere et invenies.

    "Simplicity does not precede complexity, but follows it." -- Alan Perlis
    "Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
    "The only real mistake is the one from which we learn nothing." -- John Powell


    Other boards: DaniWeb, TPS
    Unofficial Wiki FAQ: cpwiki.sf.net

    My website: http://dwks.theprogrammingsite.com/
    Projects: codeform, xuni, atlantis, nort, etc.

  3. #3
    Registered User
    Join Date
    Jul 2007
    Posts
    53

  4. #4
    Registered User
    Join Date
    Mar 2005
    Location
    Mountaintop, Pa
    Posts
    1,058
    You've probably got the wrong code page in your resource file. I believe it should be 1252. Another way to fix this is to load your resource file into a GUI resource compiler such as the one found in VC6, go to your string table and right click on the string and change the language to English

  5. #5
    Registered User
    Join Date
    Jul 2007
    Posts
    53
    arrite thanks

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. A question related to strcmp
    By meili100 in forum C++ Programming
    Replies: 6
    Last Post: 07-07-2007, 02:51 PM
  2. Simple Menu Problem
    By DanC in forum C++ Programming
    Replies: 4
    Last Post: 03-15-2006, 01:33 PM
  3. Problem with Mouse Over Menu!!! HELP!!!
    By SweeLeen in forum C++ Programming
    Replies: 3
    Last Post: 02-09-2006, 02:10 AM
  4. Window - Menu problem...
    By FromHolland in forum Windows Programming
    Replies: 1
    Last Post: 02-26-2004, 03:49 PM
  5. MDI and MENU Problem
    By Marc in forum Windows Programming
    Replies: 3
    Last Post: 02-21-2004, 06:59 PM