如何修改基于对话框的程序的ClassName?

如果你要使用函数 FindWindow(lpClassName, lpWindowName); 查找某个对话框,程序刚好是基于对话框时,这该怎么办呢?默认的窗口的ClassName都是 " #32770”, (可以在程序中调用以下函数得到):

 

 
int GetClassName(

 

 
 HWND hWnd,           // handle to window

 

 
 LPTSTR lpClassName// class name

 

 
 int nMaxCount        // size of class name buffer

 

 
);

 

 
在我的例子中,假设我要设定ClassName为SeedServer,具体如下:

 

(1)首先在程序中 CSeed::InitInstance()中添加以下代码:

 

       WNDCLASS wcx;

 

       memset(&wcx, 0, sizeof(wcx));

 

       //if (!GetClassInfoEx(NULL, MAKEINTATOM(0X8002), &wcx))

 

       if (!GetClassInfo(NULL, WC_DIALOG, &wcx))

 

       {

 

              TRACE("Failed to register class step1/n");

 

              return FALSE;

 

       }

 

       wcx.lpszClassName = _T("SeedServer ");//修改为自己定义的ClassName

 

       if (!RegisterClass(&wcx))

 

       {

 

              TRACE("FAILED to register class step2/n");

 

              DWORD dw = GetLastError();

 

              CHAR szBuf[80];

 

              sprintf(szBuf, "failed: GetLastError returned %u/n", dw);

 

              AfxMessageBox(szBuf);

 

              return FALSE;

 

       }

 

(2)修改资源文件 *.rc ,

 

IDD_SEED_DIALOG DIALOGEX 0, 0, 327, 231

 

STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP |

 

    WS_VISIBLE | WS_CAPTION | WS_SYSMENU

 

EXSTYLE WS_EX_APPWINDOW

 

CAPTION "Seed"

 

CLASS "SeedServer"            //添加这一行(中间有空格)

 

FONT 9, "宋体"

 

BEGIN

 

    PUSHBUTTON      "Start",IDC_BTN_START,14,36,69,24

 

    PUSHBUTTON      "Button2",IDC_BUTTON2,236,191,84,33
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值