网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月22日漏签0天
c++吧 关注:625,378贴子:2,112,461
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回c++吧
>0< 加载中...

[提问]为什么我的窗口会随着[关于]对话框的关闭一起关闭

  • 只看楼主
  • 收藏

  • 回复
  • Aventzero
  • ,
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
/* ChuangKou.cpp */
#include "ChuangKou.h"
#include "resource.h"
INT_PTR CALLBACKGuanYu(HWND, UINT, WPARAM, LPARAM);
HINSTANCE ChuangKouShiLi;
ChuangKou::ChuangKou(void)
{
}
ChuangKou::~ChuangKou(void){
}
/* 创建窗口 */
CuoWu ChuangKou::Create( HINSTANCE JuBin_ShiLi, LPSTR BiaoTi, zx iChang , zx iKuan , Uczx iYangShi )
{
//=============Ex新增信息,绑定结构和实例===============
z_CKLei.cbSize = sizeof(z_CKLei);
z_CKLei.hInstance = JuBin_ShiLi;
//=============窗口基础信息===============
z_CKLei.hCursor = LoadCursor(NULL,IDC_ARROW);
z_CKLei.hIcon = LoadIcon(JuBin_ShiLi, MAKEINTRESOURCE(IDI_TUBIAO));
z_CKLei.hbrBackground= (HBRUSH)(COLOR_WINDOW+1);
z_CKLei.lpszMenuName= MAKEINTRESOURCE(IDR_CAIDAN);
z_CKLei.lpszClassName= "AVENTZERO";
z_CKLei.hIconSm= LoadIcon(JuBin_ShiLi, MAKEINTRESOURCE(IDI_TUBIAO));
//=============附加信息===================
z_CKLei.style= CS_HREDRAW | CS_VREDRAW;
z_CKLei.lpfnWndProc= WndProc;
z_CKLei.cbClsExtra= 0;
z_CKLei.cbWndExtra= 0;
//==============注册窗口==================
if (!RegisterClassEx(&z_CKLei))
{
return ChuangKouCW;
}
//==============创建窗口==================
z_CKJuBin = CreateWindowEx(
WS_EX_CLIENTEDGE,
"AVENTZERO",
BiaoTi,
iYangShi,
CW_USEDEFAULT,
CW_USEDEFAULT,
iChang,
iKuan,
NULL,
NULL,
JuBin_ShiLi,
(void *)this
);
ChuangKouShiLi = JuBin_ShiLi;
SetWindowText(z_CKJuBin,BiaoTi);
return WuCW;
}
LRESULT CALLBACK ChuangKou::WndProc(HWND JuBin_ChuangKou , UINT iXiaoXi, WPARAM wParam,LPARAM lParam)
{
int wmId, wmEvent;
ChuangKou * XTChuangkou = NULL;
br bYiChuLi = F;
switch (iXiaoXi)
{/* 创建窗口并设置自定义信息*/
case WM_NCCREATE:
SetWindowLong(JuBin_ChuangKou,GWL_USERDATA,(long)((LPCREATESTRUCT(lParam))->lpCreateParams));
break;
/* 让自定义的消息处理函数来处理窗口消息 */
/* 关闭窗口 */
case WM_CLOSE:
if(IDOK == MessageBox(JuBin_ChuangKou ,"你确认要退出游戏吗", "退出确认", MB_OKCANCEL | MB_ICONQUESTION))
{
DestroyWindow(JuBin_ChuangKou);
}
break;
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// 分析菜单选择:
switch (wmId)
{
case IDM_GUANYU:
DialogBox(ChuangKouShiLi, MAKEINTRESOURCE(IDD_GUANYU), JuBin_ChuangKou, GuanYu);
break;
case ID_TUICHU :
if(IDOK == MessageBox(JuBin_ChuangKou,"你确认要退出游戏吗", "退出确认", MB_OKCANCEL | MB_ICONQUESTION))
{
DestroyWindow(JuBin_ChuangKou);
}
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
XTChuangkou = (ChuangKou* )GetWindowLong(JuBin_ChuangKou,GWL_USERDATA);
if(NULL!=XTChuangkou)
{
bYiChuLi = XTChuangkou->XiaoXiChuLi(iXiaoXi,wParam,lParam);
}
break;
}
/* 如果消息没有被处理就让Windows自己处理 */
if (F==bYiChuLi)
{
return DefWindowProc(JuBin_ChuangKou,iXiaoXi,wParam,lParam);
}
return 0;
}
void ChuangKou::Run()
{
while (1)
{
if (PeekMessage(&z_CKXiaoXi,NULL,0,0,PM_REMOVE)) //不能使用句柄去对应获取消息的z_CKJuBin
{
/* 如果是退出指令的话就退出循环 */
if (WM_QUIT==z_CKXiaoXi.message)
{
break;
}
else
{
TranslateMessage(&z_CKXiaoXi);
DispatchMessage(&z_CKXiaoXi);
}
}
else
{
YouXi();
}
}
}
br ChuangKou::XiaoXiChuLi(UINT iXiaoXi,WPARAM wParam,LPARAM lParam)
{
switch(iXiaoXi)
{
case WM_DESTROY:
PostQuitMessage(0);
return T;
break;
default:
return F;
break;
}
}
// “关于”框的消息处理程序。
INT_PTR CALLBACK GuanYu(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
UNREFERENCED_PARAMETER(lParam);
switch (message)
{
case WM_INITDIALOG:
return (INT_PTR)TRUE;
case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return (INT_PTR)TRUE;
}
break;
}
return (INT_PTR)FALSE;
}
void ChuangKou::SZWeiZhi(zx iX,zx iY){
SetWindowPos(z_CKJuBin,HWND_TOP,iX,iY,0,0,SWP_NOSIZE);
}
POINT ChuangKou::HQWeiZhi(POINT * CKWeiZhi){
RECT CKJuXing;
POINT pCKWeiZhi;
/* Get window position */
GetWindowRect (z_CKJuBin, &CKJuXing);
pCKWeiZhi.x = CKJuXing.left;
pCKWeiZhi.y = CKJuXing.top;
return pCKWeiZhi;
}
void ChuangKou::SZDaXiao(zx iChang,zx iKuan){
SetWindowPos(z_CKJuBin,HWND_TOP,0,0,iChang,iKuan,SWP_NOMOVE);
}
POINT ChuangKou::HQDaXiao(POINT * CKDaXiao)
{
RECT CKJuXing;
POINT pCKDaXiao;
/* Get window position */
GetWindowRect (z_CKJuBin, &CKJuXing);
pCKDaXiao.x = CKJuXing.right - CKJuXing.left;
pCKDaXiao.y = CKJuXing.bottom - CKJuXing.top;
return pCKDaXiao;
}
void ChuangKou::XianShi(zx iXianShi)
{
ShowWindow (z_CKJuBin, iXianShi);
}
http://pan.baidu.com/s/1eQCBzVW


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回c++吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示