游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2244|回复: 2

诡异,我居然不可以用SetWindowText设置窗口标题

[复制链接]

16

主题

88

帖子

102

积分

注册会员

Rank: 2

积分
102
发表于 2011-3-10 20:16:00 | 显示全部楼层 |阅读模式


如上面所示,已经断住了,而另外新建一个Project,代码一样的,居然一切都是正常的。

下面是新Project的代码:

  1. #include <windows.h>
  2. #include <string>
  3. #include <tchar.h>

  4. typedef std::basic_string<TCHAR> _tstring;
  5. HWND hDebugWnd = NULL;


  6. static LRESULT CALLBACK StaticClientWndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );

  7. INT WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in_opt LPSTR lpCmdLine, __in int nShowCmd )
  8. {
  9.         WNDCLASSEX wc = {0};

  10.         wc.cbSize        = sizeof(WNDCLASSEX);
  11.         wc.style         = CS_HREDRAW | CS_VREDRAW;
  12.         wc.lpfnWndProc   = StaticClientWndProc;
  13.         wc.cbClsExtra    = 0;
  14.         wc.cbWndExtra    = 0;
  15.         wc.hInstance     = hInstance;               
  16.         wc.hIcon         = LoadIcon(0, IDI_APPLICATION);
  17.         wc.hCursor       = LoadCursor(0, IDC_ARROW);
  18.         wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
  19.         wc.lpszMenuName  = 0;
  20.         wc.lpszClassName = _T("MainWindow");

  21.         if( !RegisterClassEx(&wc) )
  22.         {
  23.                 return -1;
  24.         }

  25.         _tstring strActTitle = _T("haha");

  26.         DWORD WindowStyle;
  27.         WindowStyle = WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_BORDER | WS_CAPTION;

  28.         // Create Window
  29.         hDebugWnd = CreateWindowEx(
  30.                 WS_EX_APPWINDOW,
  31.                 _T("MainWindow"),
  32.                 strActTitle.c_str(),
  33.                 WindowStyle,
  34.                 CW_USEDEFAULT, CW_USEDEFAULT, 1024, 768,
  35.                 NULL,
  36.                 NULL,
  37.                 hInstance,
  38.                 NULL );

  39.         ::ShowWindow( hDebugWnd, SW_SHOW );
  40.         ::UpdateWindow( hDebugWnd );

  41.         MSG msg = {0};

  42.         while(msg.message != WM_QUIT)
  43.         {
  44.                 if(PeekMessage( &msg, 0, 0, 0, PM_REMOVE ))
  45.                 {
  46.                         TranslateMessage( &msg );
  47.                         DispatchMessage( &msg );
  48.                 }
  49.                 else
  50.                 {       
  51.                         Sleep(50);
  52.                 }
  53.         }
  54.         return (int)msg.wParam;

  55.         return 0;
  56. }

  57. static LRESULT CALLBACK StaticClientWndProc( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam )
  58. {
  59.         return ::DefWindowProc( hwnd, msg, wParam, lParam );
  60. }
复制代码


大家有没有相关的经验可以交流一下啊?
比如什么情况下回出现这个现象。
X86和X64编译都一样,都无法设置标题。

0

主题

5

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2011-3-10 20:19:00 | 显示全部楼层

Re:诡异,我居然不可以用SetWindowText设置窗口标题

。。。。。。。好晕

16

主题

88

帖子

102

积分

注册会员

Rank: 2

积分
102
 楼主| 发表于 2011-3-10 21:07:00 | 显示全部楼层

Re:诡异,我居然不可以用SetWindowText设置窗口标题

已经解决,消息函数的问题:

  1.                 //return (size_t)::DefWindowProcA( (HWND)uWndID, (uint)uMsg, wParam, lParam );
  2.                 return (size_t)::DefWindowProc( (HWND)uWndID, (uint)uMsg, wParam, lParam );
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-7 17:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表