现在的位置: 首页 > 综合 > 正文

window编程学习总结

2013年10月12日 ⁄ 综合 ⁄ 共 4012字 ⁄ 字号 评论关闭

这段时间把《C语言也能干大事》的前21章看完了,在里面学习了许多对控件的操作函数,后面的讲解也使我对与数据库的连接、DLL的建立有了一定的了解,现在将一些基本的操作以及基本的知识点在这里进行下归纳总结,便于以后的查阅。

WINAPI基本函数

1.MessageBox()

掌握点:参数意义、返回值。

其中hwnd可以设置为NULL,即不指定父窗口。采用不同的style,以 | 进行style的重叠,而不同的style也会产生不同的返回值。

函数调用形式:MessageBox(NULL,TEXT("请多查阅MSDN"),TEXT("windows编程"), MB_OK|MB_ICONINFORMATION);

另外为了避免汉字乱码,可采用TEXT("请多查阅MSDN")来避免,相关可查阅

http://www.diybl.com/course/4_webprogram/asp.net/netjs/20090917/175552.html

2.PlaySound()

函数调用形式:PlaySound(TEXT("C://WINDOWS//MEDIA//Windows XP 电话拨入声.wav"),NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);

此函数只能播放一首歌,使用时注意setting->link,添加 winmm.lib。

另外播放音乐还可以使用mciSendString()来实现,mciSendString()是多媒体相关的函数,如下形式可以弹出电脑光驱:

mciSendString("set cdaudio door open",NULL,0,0);

3.GetOpenFileName()

初始化OPENFILENAME这个结构体时主要注意两处设置:

ofn.lpstrFilter="ALL/0*.*/0Text/0*.txt/0Song/0*.wav/0";              //设置文件的过滤器

ofn.Flags=OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST|OFN_ALLOWMULTISELECT;//最后一个flag允许多选。

ofn.lpstrFile=fliepath;//通过这样,获得选择的文件路径名字。

另外当多文件时,不同的文件间以'/0'作为分割,所以可以自己写格外的函数获取所有的文件名。

4.GetLogicalDrives()

此函数获取系统中的磁盘信息,其返回值为bitmask,如返回值为60,即二进制(111100),表示无A、B盘,含有C、D、E、F,最低位表示A盘,依次上升。

5.GetDlgItemText(),SetDlgItemText(),对许多控件都有效包括checkbox、radio button

可用于设置或获得对话框控件上的文字,这两个函数很基本,最常用。

6.SendDlgItemMessage()

这个函数太有用了,它可以控制、获得控件状态。如:为combo插入下拉选项,获得其选项、删除其选项等等;设置、获得checkbox选中状态等等;还能对listbox进行添加信息等等。这解决了许多windows程序开发中需要的功能。

//今天就写这么多,后面有关于上面函数的具体是使用,然后还有比较重要的函数SetTimer(),以及更多控件操作。

以下是SendDlgItemMessage()中比较的消息:

对于combobox中常用消息,具体使用可以再查阅MSDN

CB_ADDSTRING CB_DELETESTRING CB_GETCOUNT CB_GETCURSEL CB_INSERTSTRING CB_RESETCONTENT CB_SELECTSTRING CB_SETCURSEL CB_SETTOPINDEX CB_SHOWDROPDOWN

checkbox中常用到的消息

BM_GETCHECK BM_GETSTATE BM_SETCHECK BM_SETSTATE BN_CLICKED

list box中的消息更多,这个控件比较复杂,也可以自己进行重写,不过这里也只是列举最常用的消息吧

LB_GETTEXT LB_GETTOPINDEX LB_INSERTSTRING LB_SETCOUNT LB_SETCURSEL LB_SETSEL LB_SETTOPINDEX LBN_DBLCLK LBN_SELCHANGE
7.SetTimer()//目前使用并多不,所以也不能详细介绍了。

函数用法很简单,按照上面的形式写即可,设置时间时注意其以毫秒计。WINDOWS以设定的时间间隔周期性触发程序,它是非阻塞的。

当有多个时注意标识不要重复即可。

8.隐藏、显示、禁用、启用控件//没有多少好说的
隐藏:ShowWindow (hdlg, SW_HIDE) ;
显示:ShowWindow(IDC,SW_NORMAL);
判断控件是否可见:IsWindowVisible (IDC) ;
禁用控件:EnableWindow (IDC, FALSE) ;
启用控件:EnableWindow(IDC,TRUE);
判断控件是否可用:IsWindowEnabled (IDC) ;

9.多线程

C语言的实用函数

memset(),itoa(),atoi(),atof(),sprintf(),sscanf()

这些函数以前一直不怎么熟习,在网上看到也觉得很难,其实还是自己用少了,它们和printf()一样,用多了你就知道它们带给你的方便了

 

VC的基本操作

创建自己的ico程序图标

新建ico文件,添加(即新建)rc文件,在rc文件右击import即可

 

这个视频知识点非常基础,因为它大部分内容还是讲解了基本控件使用及相关的函数,不过还是挺赞同作者,因为由浅入深学习也是个循序渐进的过程。后面的关于多线程编程、socket编程、DLL的编写、c语言写网站,这些只是最最基础的介绍了下,实用价值不大,但作为了解可以看看。

(这句话其实值得思考的,在你的资源能力范围内,永远不要循序渐进,永远把自己的思维用在最能发挥你资源效率的事情上,那么这就是你要对自己有一个好的预判,你要对自己的环境有一个好的预判。由这个角度循序渐进是错的,因为处理低级的东西会浪费你宝贵的时间)

与MFC会有不同,若要进一步了解windows下的编程原理应该要去看看孙鑫的视频,对于有基础的同学,看着还是挺好的。

另外强调下,多打基础,这些视频虽然看上去可以做出东西,但若对如何实现不了解,其实很枉然,编程的水平几乎很难进步,而且极易导致以后代码质量问题,编程不规范等一系列问题。建议打好基础,对C、C++语言多熟习熟习,多看看数据结构、算法等。

抱歉!评论已关闭.