首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

windows 窗口,该如何处理

2012-03-09 
windows 窗口我的窗口名字是乱码,请问是我编译器的设置问题还是代码问题,请各位帮帮忙。下面是我的代码。C/C

windows 窗口
我的窗口名字是乱码,请问是我编译器的设置问题还是代码问题,请各位帮帮忙。
下面是我的代码。

C/C++ code
//#define WIN32_LEAN_AND_MEAN             // Exclude rarely-used stuff from Windows headers// Windows Header Files:#include <windows.h> // C RunTime Header Files#include <stdlib.h>#include <malloc.h>#include <memory.h>#include <tchar.h>HWND hWnd=NULL; // 保存 Windows 分配给程序的窗口句柄,它是全局的LRESULT APIENTRY MyWndProc(HWND,UINT,WPARAM,LPARAM);void MyMsgLoop();int APIENTRY WinMain(HINSTANCE hInstance,                     HINSTANCE hPrevInstance,                     LPSTR     lpCmdLine,                     int       nCmdShow){    //LPCTSTR tt;//    wchar_t * tt= "";    char clsName[]="myWnd";//{'m','y','W','n','d'};    WNDCLASS wc;    wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;    wc.lpfnWndProc = MyWndProc;    wc.cbClsExtra = 0L;    wc.cbWndExtra = 0L;    wc.hInstance = hInstance;    wc.hIcon = NULL;    wc.hCursor = NULL;    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW);    wc.lpszMenuName = NULL;    wc.lpszClassName = clsName;    RegisterClass(&wc);    hWnd = CreateWindow(clsName,                        clsName,                        WS_OVERLAPPEDWINDOW|WS_CLIPCHILDREN|WS_CLIPSIBLINGS,                        100,                        100,                        400,                        300,                        NULL,                        NULL,                        hInstance,                        NULL); // 创建窗口    ShowWindow( hWnd, SW_SHOWDEFAULT ); // 显示窗口    UpdateWindow( hWnd );   // 刷新窗口        MyMsgLoop();     // 进入消息循环        return 0;}LRESULT APIENTRY MyWndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam ) {// 消息处理    switch(message) {        case WM_CREATE:  // 当收到建立窗口的消息时,进行处理...          //MessageBox(NULL,"窗口创建的时候","消息提示",MB_OK|MB_ICONEXCLAMATION);           return 0;           break;        case WM_CLOSE:  // 当收到关闭窗口的消息时,进行处理...           MessageBox(NULL,"windows closed","message tip",MB_OK|MB_ICONEXCLAMATION);            PostQuitMessage(0);           return 0;           break;        case WM_SIZE:    // 当窗口尺寸变化时,进行处理...           MessageBox(NULL,"windows size change","message tip",MB_OK|MB_ICONEXCLAMATION);           return 0;           break;        case WM_DESTROY: // 当退出消息的时候,进行处理...           MessageBox(NULL,"exist","message tip",MB_OK|MB_ICONEXCLAMATION);            PostQuitMessage(0);           return 0;           break;        case WM_KEYUP:  // 当收到按ESC键的消息时,(如果当前是全屏模式,必须要加入退出方式)           switch (wParam) {           case VK_ESCAPE:            MessageBox(NULL,"press ESC key","message tip",MB_OK|MB_ICONEXCLAMATION);             PostQuitMessage(0);            return 0;            break;           }            default:            break;    }    return (DefWindowProc(hWnd, message, wParam, lParam));}void MyMsgLoop() {     MSG msg;     BOOL receiveMessage;    PeekMessage(&msg, NULL, 0U, 0U, PM_NOREMOVE);    while(msg.message != WM_QUIT) { // message loop       receiveMessage = PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE);       if(receiveMessage) { // receive message        TranslateMessage(&msg);        DispatchMessage(&msg);       }    }}


[解决办法]
改这两个地方试试
C/C++ code
    wchar_t clsName[] = L"myWnd";   hWnd = CreateWindowW(clsName,                        clsName,...
[解决办法]
LZ是用unicode还是多字节模式?

试试TEXT()这个宏呢
[解决办法]
在 hWnd = CreateWindow(clsName,
clsName,这个 用TEXT() 就可以了。。



[解决办法]
wchar_t clsName[] = L"myWnd";
unicode 问题

热点排行