【C大事】第六讲:定时器控件

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;

}

其他控件:
复选框控件、check总共有三种状态。
取得复选按钮的是否选中:
LRESULT Button_GetCheck(HWND hwndCtl);
BST_CHECKED BST_UNCHECKED

switch(id)
{
  case IDC_OK:
  {
    HWND hwndcheck = GetDlgItem(hwnd, IDC_CHECK1);
    int checkstate = Button_GetCheck(hwndcheck);
    if(checkstate == BST_CHECKED){
      MessageBox(hwnd, TEXT("被选中了"), TEXT(""), MB_OK);
    }
    if (BST_UNCHECKED == checkstate){
      MessageBox(hwnd, TEXT("未被选中"), TEXT(""), MB_OK);
    }

  }

  break;

  default:

  break;

}

设置复选按钮是否选中:
LRESULT Button_SetCheck(HWND hwndCtl, int check);
BST_CHECKED BST_UNCHECKED
switch(id)
{

  case IDC_OK:
  {
    HWND hwndcheck = GetDlgItem(hwnd, IDC_CHECK1);
    int checkstate = Button_GetCheck(hwndcheck);
    if(checkstate == BST_CHECKED){
      Button_SetCheck(hwndcheck, BST_UNCHECKED);
    }
    if (BST_UNCHECKED == checkstate){
      Button_SetCheck(hwndcheck, BST_CHECKED);
    }

  }

  break;

  default:

  break;

}



 

ListBox(和 Combo 类似)
(1)添加项:
如果采用 LBS_SORT 样式,那么填入清单方块最简单的方法是借助
ListBox_AddString:
int ListBox_AddString(HWND hwndCtl, LPCSTR lpsz);
如果没有采用 LBS_SORT, 那么可以使用 ListBox_InsertString 指定一个索引值,
将字符串插入到清单方块中:
int ListBox_InsertString(HWND hwndCtl, int index, LPCSTR lpsz);
(2)删除项:
int ListBox_DeleteString(HWND hwndCtl, int index);
(3)取得有多少项:
int ListBox_GetCount(HWND hwndCtl); 
(4)选定某一项

int ListBox_SetCurSel(HWND hwndCtl, int index);将 iParam 设定为-1 则取消所有选择

(5) 确定目前选项的索引:

int ListBox_GetCurSel(HWND hwndCtl); 如果没有项目被选中,那么从呼叫中传回的
iIndex 值为
LB_ERR。
(6)将某项目复制到文字缓冲区中:

int ListBox_GetText(HWND hwndCtl, int index, LPCTSTR lpszBuffer);

时间: 2024-12-20 21:47:53

【C大事】第六讲:定时器控件的相关文章

同时添加DataGridView控件与定时器控件后,程序尚未运行时,定时器控件出现红叉

问题描述 别的控件与定时器控件都没问题,只要一添加DataGridView控件,定时器控件的窗口就会出现这样的红叉.VS已经修复过了. 解决方案 解决方案二:而下载的一份代码中,就没有这样的问题,所以,这应该不是VS的问题吧?也按照示例代码中的DataGridView的属性设置过,但是还会有红叉.解决方案三:那就不用datagridview,用listview呗.添加datagridview后再添加timer试试.记住重新创建一个新的项目.解决方案四:将你的timer删了再重新添加试试呢,然后d

Windows 8风格应用开发入门 六 GridView数据控件

什么是GridView数据控件? GridView控件用来显示数据集合.它继承自ItemsControl.通常使用GridView控件来横向显示数据,并且显示的数据通常是排序过的.另外我们一般开发水平视图时,通常使用GridView显示数据集合. GridView数据控件包含的重要属性和事件: 1) IsItemClickEnabled属性:获取或设置点击列表项是否会触发Click事件: 2) SelectionMode属性:获取或设置选择的模式: 3) HeaderTemplate属性:获取或

c#扩展方法奇思妙用高级篇六:WinForm控件选择器

我们先看几个类图,深入认识一下我们常用的WinForm控件: 图1 ScrollableControl类图 图2 ButtonBase类图 图3 TextBoxBase类图 图4 ListControl类图 图5 Label类图 图6 其它常用 从图1中可以看出,Form与Button.Label一样,也是一个Control.

backgroundworker-c#主窗口里timer控件设定的是1分钟执行1次,为什么每分钟内会执行多次

问题描述 c#主窗口里timer控件设定的是1分钟执行1次,为什么每分钟内会执行多次 我在主窗口中添加了几个timer和backgroundwork,一一对应,用timer去监控独立线程的执行.设定每个timer1分钟执行一次,为什么会被执行多次.代码如下: private void sjsxjk_Tick(object sender, EventArgs e) { if (!SJSXJKbgw.IsBusy) //每次此独立进程还没执行完,isbusy属性仍然是 false,这是为何? { S

浅谈ASP.NET常用数据绑定控件优劣总结_实用技巧

本文的初衷在于对Asp.net常用数据绑定控件进行一个概览性的总结,主要分析各种数据绑定控件各自的优缺点,以便在实际的开发中选用合适的控件进行数据绑定,以提高开发效率. 因为这些数据绑定控件大部分都已经封装的很好了,稍微有一些基础的朋友都可以很容易的上手使用,所以本文不涉及具体控件的使用,只在于分析各自的优劣点,但是在下一篇文章里,我会主要讲一下ListBox.GridView.Repeater这三个数据绑定控件的"高效分页",ListBox和GridView内置的有分页,但是其效率太

亲密接触ASP.Net(3) asp+中的控件

最近有朋友问我,哪里可以学好ASP+,我早就说过NGWS中带的文档是最好的学习手册,不过由于NGWS的要求太高,还有它的大小(110M)的问题,有一部分兄弟,不能装上它,我给你们一个站点http://www.aspnextgen.com/quickstart/aspplus/ ,上面的文档就是NGWS直接带的,而且这个站点全是由asp+构建的,大家可以直接看到aspx的执行情况,我现在对我们的站点唯一不满的地方就是不能执行aspx,不能给大家看到例程的执行结果. 好了不说多话了,我们这一节要来看

DataList控件也玩分页 (转自aspcn.com)

分页|控件 众所周知,ASP.Net中给我们提供了三个数据控件--DataGrid,Repeater,DataList.在这三个控件中,DataGrid控件的功能最强大,Repeater控件最忠实于模版原样,DataList控件则兼而有之. DataGrid控件太有名了,所以以前用的讲的也很多,Repeater功能太少,没有什么好讲的.这里主要是讲一讲DataList控件. DataList控件其实功能也很强大,他支持选择.编辑,实现的方法也很简单,不过最令人头疼的就是它不像DataGrid控件

看实例学VFP:超级链接控件的使用

超级链接控件(HyperLink)不象文本框.命令按钮等控件那样常用,一般是在制作软件的"关于"表单的时候能够用到它.这个控件的最常用的方法是NavigateTo(指定要打开的网址),本文来做一个关于这个控件的例子,运行时如下图: 在上图中: 单击了蓝色标签文字会直接打开"编程入门网": 单击了"关于本站"按钮,则会使用api函数调用Windows系统的"关于"窗体(用到了FOXTOOLS.FLL库,在随文的源码中有). 单击

vb.net的Timer控件

Timer(定时器)控件是用来产生一定的时间间隔.在每个时间间隔中都可根据应用程序的要求有相同或不同的事件或过程发生,Timer控件在工具箱中的图标如图所示: 1.设置Interval.Enabled属性 Interval属性是Timer控件最重要的属性之一,它决定着事件或过程发生的时间间隔,Interval属性以千分之一秒为基本单位,就是事件发生的最短间隔是一毫秒,但是这样的时间间隔对系统的要求很高,因此按时间精度的要求适当设置这个属性也是工程运行速度和可靠性的一种保证. Enabled属性可