Windows 事件初探
来源:互联网 发布:excel销售数据分析报表 编辑:程序博客网 时间:2024/05/07 18:05
今天学了Win32 汇编当中的事件.就跟着例子写了个Win32的小程序.把代码记下来.做为留念.
#include "counter.h"
#include "resource.h"
static BYTE dwOptionPause=0; //标志位,是否暂停.1 非暂停.
static BYTE dwOptionStop=1; //非开始.
static int i=1;
HWND hWndDlg;
HANDLE hEvent;
HANDLE hThread;
DWORD WINAPI counter(LPVOID lParam)
{
while (i)
{
SetDlgItemInt(hWndDlg,IDC_EDIT1,i,true);
i++;
WaitForSingleObject(hEvent,INFINITE);
}
return 0;
}
INT_PTR CALLBACK WindowProc(HWND hWnd,UINT uMsg,WPARAM wParam ,LPARAM lParam)
{
switch(uMsg)
{
case WM_COMMAND:
{
switch (LOWORD(wParam))
{
case IDOK:
{
if (dwOptionStop)
{
SetEvent(hEvent);//设置为有信号状态.
hThread = CreateThread(NULL,0,counter,NULL,0,NULL);//创建线程.
EnableWindow(GetDlgItem(hWndDlg,IDCANCEL),true);
SetDlgItemText(hWnd,IDOK,_T("停止"));
dwOptionStop=0;
}
else
{
SetDlgItemText(hWnd,IDOK,_T("计数"));
EnableWindow(GetDlgItem(hWndDlg,IDCANCEL),false);//禁用.
CloseHandle(hThread);
ResetEvent(hEvent);
dwOptionStop=1;
}
}
break;
case IDCANCEL:
{
if (dwOptionPause)//处于暂停状态.
{
SetEvent(hEvent);//置为有信号状态.
dwOptionPause =0;
}
else
{
ResetEvent(hEvent);//置为无信号状态.
dwOptionPause=1;
}
}
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
}
break;
case WM_INITDIALOG:
{
hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);//创建事件对象.
EnableWindow(GetDlgItem(hWnd,IDCANCEL),false);
hWndDlg = hWnd;
}
break;
default:
DefWindowProc(hWnd,uMsg,wParam,lParam);
}
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
LPCWSTR lpTemplate = MAKEINTRESOURCE(IDD_DIALOG_MAIN);
return DialogBoxParam(hInstance,lpTemplate,NULL,WindowProc,NULL);
}
- Windows 事件初探
- javascript:自定义事件初探
- 委托与事件初探
- javascript 事件代理初探
- Windows SDK编程初探
- Windows服务初探
- Windows SDK编程初探
- windows驱动程序开发初探
- Windows信使之初探
- windows下nutch初探
- Windows服务初探
- Windows服务初探
- Windows SDK编程初探
- Windows SDK编程初探
- windows驱动程序开发初探
- windows驱动程序开发初探
- Windows CE初探
- 摘抄---Windows CE初探
- 15 Key Elements All Top Web Sites Should Have
- 程序员英语复习80题
- 《七笔勾》--陕北风光
- 函数调用约定收藏
- ABAP导数据到Excel总结
- Windows 事件初探
- 数据结构的问题
- 如何建立共享目录
- VC Skills 3收藏
- 如何定义Xsd文件
- 第二讲: TAB家族
- Smart Client学习笔记(2) 创建专业用户界面的Windows Form应用程序
- word 2007 失去焦点后鼠标无法编辑的解决方案
- 随机算法 MillerRabin素数测试是3/4正确的蒙特卡洛算法