复合控件制作示例
2006-07-21 11:43:01 来源:WEB开发网上面代码中的函数GetSTime(str.wHour,str.wMinute,atoi(str_h),atoi(str_m),str.wSecond)是我自定义的,目的是用来计算剩余时间,具体方法见后。
8、为程序添加一个变量,此变量用来反映用户选择的是哪一个单选按钮。
protected:
int m_nType;
并初使变量,在构造函数CShutDownCtrl()中加入代码m_nType=0;
9、为三个单选按钮添加函数,方法和上面为IDC_OK添加单击函数相同
LRESULT OnClickedRadio1(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
// TODO : Add Code for control notification handler.
m_nType=1;
return 0;
}
LRESULT OnClickedRadio2(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
// TODO : Add Code for control notification handler.
m_nType=2;
return 0;
}
LRESULT OnClickedRadio3(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled)
{
// TODO : Add Code for control notification handler.
m_nType=3;
return 0;
}
10、在ClassView中右击CShutDownCtrl,然后选择Add Member Function,在接一下来的对话框中输入函数类型为void,函数声明为GetSTime(int H,int M,int h,int m,int s)
然后在ShutDownCtrl.cpp中加入代码:
void CShutDownCtrl::GetSTime(int H, int M, int h, int m, int s)
{
CHAR str[20];
m-=1;
if(h<H)h+=24;
if(m<M){m+=60;h-=1;}
sprintf(str,"%2d时%2d分%2d秒",h-H,m-M,60-s);
SetDlgItemText(IDC_STIME,str);
}
11、测试很简单,首先按F7键编译,之后打开源文件所在目录,双击ShutDownCtrl.Htm文件就可以测试了。
总结:其实编制复合控件和用MFC编一般的程序区别不大,只要搞清步骤就可以了。在此希望所有程序爱好者多多练习,学有所成。我坚信一分耕耘,就一定会有一分收获的。
更多精彩
赞助商链接