本文对ListBox,CheckBox,Timer三种控件进行了学习。
#include "stdafx.h"
#include <windows.h>
#include <windowsx.h>
#include "resource.h"
#include "MainDlg.h"
/*
本节介绍了CheckBox、ListBox、Timer三种控件的使用
*/
BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog);
HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);
HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose);
}
return FALSE;
}
void CALLBACK MyTimerProc(HWND hwnd, UINT message, UINT iTimerID, DWORD dwTime)
{
SYSTEMTIME stLocal;
GetLocalTime(&stLocal);
TCHAR strTime[256];
wsprintf(strTime,"%i年%i月%i日 %i:%i:%i",
stLocal.wYear,stLocal.wMonth,stLocal.wDay,stLocal.wHour,stLocal.wMinute,stLocal.wSecond);
SetDlgItemText(hwnd,IDC_EDITTIME,strTime);
}
BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)
{
SetTimer(hwnd,0,1000,MyTimerProc);
return TRUE;
}
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
HWND hwnd_check1 = GetDlgItem(hwnd,IDC_CHECK1);
int checkStatus = Button_GetCheck(hwnd_check1);
switch(id)
{
case IDC_OK:
{
//::SendMessage(HWND_BROADCAST,WM_SYSCOMMAND,SC_MONITORPOWER,2); //关闭显示器的API
HWND hwnd_check1 = GetDlgItem(hwnd,IDC_CHECK1);
int checkStatus = Button_GetCheck(hwnd_check1);
if(BST_CHECKED == checkStatus)
{
MessageBox(hwnd,TEXT("CheckBox被选中"),TEXT("提示"),MB_OK);
}
if(BST_UNCHECKED == checkStatus)
{
MessageBox(hwnd,TEXT("CheckBox未被选中"),TEXT("提示"),MB_OK);
}
}
break;
case IDC_CHANGE:
{
HWND hwnd_check1 = GetDlgItem(hwnd,IDC_CHECK1);
int checkStatus = Button_GetCheck(hwnd_check1);
if(BST_CHECKED == checkStatus)
{
Button_SetCheck(hwnd_check1,BST_UNCHECKED);
}
if(BST_UNCHECKED == checkStatus)
{
Button_SetCheck(hwnd_check1,BST_CHECKED);
}
}
break;
case IDC_LISTBUTTON:
{
HWND hwnd_list1 = GetDlgItem(hwnd,IDC_LIST1);
ListBox_AddString(hwnd_list1,TEXT("新的一项"));
/*类似的有ListBox_InsertString(hwnd_list1,int index,TEXT(""))
ListBox_DeleteString(hwnd_list1,int index)
ListBox_GetCurSel(hwnd_list1)
ListBox_SetCurSel(hwnd_list1,int index)//其中index设置为-1意为取消所有选择
ListBox_GetCount(hwnd_list1)等等函数*/
}
default:
break;
}
}
void Main_OnClose(HWND hwnd)
{
EndDialog(hwnd, 0);
}