Win32 应用界面构造

 最近想学多一点,所以拿win32来玩了一下。
 最初很纳闷win32怎样摆控件的,看了很多程序,明白了,除了系统已经设定好的系统控件button,edit,list box等,所有的控件都得在这几个基本控件上靠自己组合写成新的控件。

普通界面
        首先,生成界面,肯定要用RegisterClassEx注册一个界面类,这个类里面包含了一些控件界面的基本信息,然后在调用CreateWindow把控件生成出来,如果想生成一个Windows窗口界面,则跟着还需要调用 ShowWindow(hWnd, nCmdShow);
UpdateWindow(hWnd);
来显示Windows窗口界面。
         hWnd为此窗口的全局句柄,所有的子控件都得依附其用CreateWindow生成,举个生成button的例子:
hWndStartbutton = CreateWindow(_T("button"),_T("开始"),WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
  2,2,100,25,hWnd,(HMENU)1,((LPCREATESTRUCT)lParam)->hInstance, NULL);参数分别为:在系统里注册控件的名(如果是系统控件,系统默认就给其注册了),控件界面所显示的文字,控件样式,位置x,位置y,宽,高,Windows界面句柄,控件的ID,整个进程的句柄。
        如果想改变控件字体,则首先通过CreateFontIndirect生成一个字体结构,具体如:
LOGFONT   logfont; 
  ZeroMemory(&logfont,sizeof(LOGFONT));  
  logfont.lfCharSet =  GB2312_CHARSET;  
  logfont.lfHeight  =  -12;  
  _tcscpy(logfont.lfFaceName,_T("宋体"));  
  hFont = CreateFontIndirect(&logfont);
然后用 SendMessage(hWndStartbutton, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(TRUE,0) )发消息到控件上,改变控件的字体。

自定义控件
     
注册一个控件类,绑定好处理消息函数,在消息处理函数中,处理WM_PAINT时绘画控件,处理WM_COMMAND时,根据用户传来的不同的WPARAM wParam, LPARAM lParam值,作出相应的操作处理。

使用控件的注意:
1、CEdit或Edit Control中获取其文本信息,LRESULT lret =  SendMessage(tccHWND->hwndEdit, EM_GETLINE , (WPARAM)NULL,  (LPARAM)_filterip);在_filterip这个获取文本数组的第一位_filterip[0]必须要设置为数组的长度才能获取文本信息。

2、在Combox Control中必须要按下下拉按钮把下拉范围拉大才能看见你加进去的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

turbocc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值