win32 调用窗体 实现代码

// Function.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h" 
#include "resource.h"
#include <dbt.h>
#include "src/server.h"    //添加类头文件
#include "src/client.h"




HINSTANCE hInstance=NULL; //main handle    窗体句柄
LocalClient t_server;
WebServer t_Web; 


#ifndef _DEBUG              
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")   //隐藏win32窗体
#endif




BOOL CALLBACK WinProc(HWND hwndDlg,                   //回调函数
 UINT uMsg,
 WPARAM wParam,
 LPARAM lParam);




int _tmain(int argc, _TCHAR* argv[])

{      


HANDLE hMutex;  
hMutex=CreateMutexA(NULL,TRUE,"Apps");  //判断程序是否已经打开
if(hMutex)
{
if(ERROR_ALREADY_EXISTS==GetLastError())
{
MessageBoxA( NULL, "程序已经启动!", NULL, NULL); 
return 0;
}
}   


if(argc == 2) //开机启动

Sleep(10000); 
char t_Path[256] = {0};
strcpy(t_Path, GetCommandLine());   //获取应用程序路径
int i = 0;
for(; t_Path[i] != 0; i++);
for(; t_Path[i] != '\\'; i--);
t_Path[i] = 0;
strcpy(t_Web.m_Local.pPathName, &t_Path[1]);
}
else
GetCurrentDirectory( MAX_PATH, t_Web.m_Local.pPathName);   //获取应用程序路径
  
DialogBoxA(hInstance,(LPCSTR)IDD_DIALOG1,NULL,WinProc, 1); //调用对话框IDD_DLALOG1, 此时需要定义回调函数WinProc, 
return 0;
}

//窗体回调函数实现
BOOL CALLBACK WinProc(HWND hwndDlg,
 UINT uMsg,
 WPARAM wParam,
 LPARAM lParam)
{  
switch(uMsg)
{  
case WM_INITDIALOG:   //初始化
{      
t_server.m_Basic.m_hWnd = hwndDlg; 
t_server.m_Basic.pWnd = CWnd::FromHandle(hwndDlg); 
//make icon
t_server.m_Basic.pWnd->SetIcon(LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)), false);
t_server.m_Basic.pWnd->SetIcon(LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON1)), true);  
}break;
case WM_MOUSEMOVE:
{  
}break;
case WM_LBUTTONDOWN:
{  
}break;
case WM_PAINT:  //播放后重绘
case WM_NCACTIVATE:  //窗体切换后重绘
{  
}break;  
case WM_HOTKEY:  //热键
case WM_COMMAND:
{  
}break;
case MYWM_NOTIFYICON:   //自定义消息

}break;
case WM_KEYDOWN:

}break;
case WM_CLOSE:

exit(0);
}break; 
case  WM_DEVICECHANGE:  //usb 拔插监测

return TRUE;

default:

}
break;  
}
return FALSE;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值