【win32 应用】win32窗口程序---网络设置界面(ip设置)

最近都没有更新博客,是因为最近在弄win32的窗口程序,而且是公司自己实现的一套接口的win32程序,一是不方便上传代码,二是代码参考价值不大,基本网上都是有的。

今天这个具体的网络设置界面,我在网上搜索了很久没有找到,记录下来,方便自己查看。只讲思路不贴代码了。


Win32程序是基于消息的(message based)、事件驱动的(event driven)。当win32程序运行时,程序不断检测外部的触发(比如单击按钮、输入等),即是否发生事件,这些“输入”由操作系统捕捉后,以消息的形式进入程序中,然后根据不同的触发进行不同的处理。因此Win32程序只需完成三件事:

1.      定义窗口外观

2.      定义不同事件发生时程序如何处理(定义窗口处理函数) 

3.      不断检测是否有新事件发生,并将其交给相应的处理函数处理    

main函数是一般C程序的入口,WinMain是Windows程序的入口。当用户执行一个程序时,操作系统为程序分配地址空间,并加载程序,调用入口函数执行程序。

 

关键点在消息和事件;做上层应用只需要熟悉和使用各种消息和事件,并在对应的地方对UI的外观和内容做修改即可。

1、窗口的基本流程

编写窗口程序的步骤:
    1 定义WinMain函数
    2 定义窗口处理函数–自己定义处理消息
    3 注册窗口类(往OS写入数据)
    4 创建窗口 (在内存中创建窗口)
    5 显示窗口(根据内存中对于窗口的描述信息,在显示器中绘制窗口)
    6 消息循环(提取/翻译/派发)
    7 消息处理

具体代码这里就不再累述了,网上有很多资料。

2、弹窗的基本流程

1、初始化

DialogBox(ghInst, MAKEINTRESOURCE(IDD_DIALOG1), g_hwnd, (DLGPROC)MyDlgProc)

2、消息处理

BOOL CALLBACK MyDlgProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) 

3、退出

EndDialog(hwndDlg, wParam);

3、EditText控件基本认识和使用

win32中可编辑的窗口控件,用于和用户交互。经常使用在用户名和密码的使用上。

SendDlgItemMessage(hWnd, dwCtrlID, WM_SETTEXT, 0, (LPARAM)(LPWSTR)wszTmp);

使用SendDlgItemMessage方法,可以输入各种格式的字符。ip地址就是一个类似“192.168.1.1”字符串。

EditText控件改变时或产生EN_UPDATE和EN_CHANGE事件,具体有什么区别请自行查资料。

4、网络设置界面实现的基本思路

1、使用什么控件来实现显示和输入

      使用确定使用EditText控件,来实现显示和输入。

2、如何解决格式的问题

      2.1、使用SendMessage(GetFocus(), EM_GETSEL, (WPARAM)&nEditStartPos, (LPARAM)&nEditEndPos);方法来获取光标位置。

      2.2、光标跳过ip地址点(.)的位置

3、如何解决ip地址上线的问题

      3.1、当EditText控件改变时调用EN_UPDATE,此时我们在这个事件中检测ip地址是否越界

      3.2、如果没越界,不做操作,修改旧值为当前设置的值。

      3.3、如果越界,修改光标回到上一个位置,设置EditText控件值为旧值。

5、结束语

基本思路就是这样子的,就不贴代码了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章