您的位置:首页 > 编程语言

win32 调用窗体 实现代码

2015-08-18 16:07 393 查看
// 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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: