WEB开发网
开发学院软件开发VC 复合控件制作示例 阅读

复合控件制作示例

 2006-07-21 11:43:01 来源:WEB开发网   
核心提示: 其中的IsOK用来判断是否点击了确定按钮,定义如下:protected:int IsOK;初始值在构造函数CShutDownCtrl()中IsOK=0;6,复合控件制作示例(2),在ClassView中右击CShutDownCtrl,然后选择Add Window Message Handl

其中的IsOK用来判断是否点击了确定按钮。定义如下:

protected:

int IsOK;

初始值在构造函数CShutDownCtrl()中

IsOK=0;

6。在ClassView中右击CShutDownCtrl,然后选择Add Window Message Handle,在接一下来的对话框中选择WM_TIMER,为它增加句柄(点击"Add Handle"),并为WM_INITDIALOG也增加一个句柄。点击"Add and Edit"退出。

7、往新增加的函数中添加代码:

LRESULT OnInitDialog(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
 // TODO : Add Code for message handler. Call DefWindowProc if necessary.
 ::SetTimer(m_hWnd,0,5000,NULL);//用来定时检查关机时间是否已到
 ::SetTimer(m_hWnd,1,1000,NULL);//用来显示当前时间
 return 0;
}
LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
 SYSTEMTIME str;
 CHAR stall DefWindowProc if necessary.
 ::SetTimer(m_hWnd,0,5000,NULL);//用来定时检查关机时间是否已到
 ::SetTimer(m_hWnd,1,1000,NULL);//用来显示当前时间
 return 0;
}
LRESULT OnTimer(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
 SYSTEMTIME str;
 CHAR str1[20];
 CHAR str_h[10],str_m[10];
 ::GetLocalTime(&str);//得到当前时间
 sprintf(str1,"%2d时%2d分%2d秒",str.wHour,str.wMinute,str.wSecond);
 SetDlgItemText(IDC_TIME,str1);
GetDlgItemText(IDC_HOUR,str_h,sizeof(str_h));//得到关机小时
 GetDlgItemText(IDC_MINUTE,str_m,sizeof(str_m));//得到关机分钟
 if(IsOK==1)GetSTime(str.wHour,str.wMinute,atoi(str_h),atoi(str_m),str.wSecond);
 if(wParam==0&&IsOK==1&&str.wHour==atoi(str_h)&&str.wMinute==atoi(str_m))
 {
  switch(m_nType)
  {
  case 1:
   ExitWindowsEx(EWX_SHUTDOWN,0);
   break;
  case 2:
   ExitWindowsEx(EWX_REBOOT,0);
   break;
  case 3:
   ExitWindowsEx(EWX_FORCE,0);
   break;
  }
 }
 return 0;
}

Tags:复合 控件 制作

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接