国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

【win32】vs2010的窗體程序Helloworld

2019-11-11 05:01:02
字體:
來源:轉載
供稿:網(wǎng)友

本來,mfc都已經(jīng)是很落后的東西,現(xiàn)在寫窗體都用C#,提到vs的窗體大家都想到c#。雖然如此,但本來了解Windows窗體的編程機制,同時又本著vc6可以實現(xiàn)的東西,vs都可以實現(xiàn)而且更進步的理念,同時市面上大部分介紹win32窗體C++編程的書籍都是以VC6為版本的,所以開倒車也要在VS中實現(xiàn)win32窗體程序的了。

具體這樣做:

1、打開VS2010,廢話,如下圖,創(chuàng)建一個win32窗體程序。

2、點下一步,直接默認設置點完成,創(chuàng)建一個Windows應用程序

3、可以直接編譯,運行了,但是生成出來的東西并不能讓我們滿意,如下圖所示,有一個我們并不需要出現(xiàn)的菜單欄,我們還想在窗體中輸出一個Helloworld。

或許此刻,你覺得VC6沒有這么亂吧,或者認為VC6和VS2010差別很大?按照部分書上所示,在創(chuàng)建工程選擇第3項,編譯運行一勞永逸?

但其實并不是,在VC6同樣如此的。而且你還可以發(fā)現(xiàn),其實VC6那些文件和這里VS2010文件也是差不多的。

實際上VS2010只是放了些兼容性文件上去而已。來來去去還是那一套,繪出一個窗體,然后在這個窗體有一個函數(shù)在不停地循環(huán),就是為了讀鼠標或者鍵盤的響應信息。然后這些信息統(tǒng)統(tǒng)扔到LRESULT CALLBACK WndPRoc這個消息回調函數(shù)里面,你要弄什么就在這個函數(shù)里面寫吧。

就是個框架,沒有什么技術含量,和你改java web什么的,改win32窗體獨有的程序框架里面的東西,在里面加你自己的東西就行了。

好,說了這么多,到底怎么完成我們去掉菜單欄和輸出一個Helloworld文件的夢想呢?

4、直接對Win_Helloworld.cpp(文件名根據(jù)你第一步的工程名不同而不同)這個主cpp入手,進行修改。

(1)去掉菜單欄,對ATOM MyRegisterClass(HINSTANCE hInstance)函數(shù),整個程序的第87行入手,如下圖修改,將其值換成NULL。

同時注釋或者刪去142-158行消息回調函數(shù)中關于菜單欄單機處理的case WM_COMMAND事件。

172-190行一大段關于“關于”對話框的函數(shù)。

(2)輸出Helloworld

接下我們需要對消息回調函數(shù)中的case WM_PAINT:這個所謂的“重繪事件”進行入手,就是你每次移動、最大化這個窗口,這個事件都會被觸發(fā)的,窗體會被重繪,人家vs2010也非常好心你就是應該在這里開始你的win32窗體程序的旅程,將case WM_PAINT:修改成如下所示,其實就是加了SetTextColor和TextOut兩個函數(shù)而已:

case WM_PAINT:	hdc = BeginPaint(hWnd, &ps);	// TODO: 在此添加任意繪圖代碼...	SetTextColor(hdc,RGB(0,0,0));//黑色的畫筆	TextOut(hdc,100,100,L"Helloworld",strlen("Helloworld"));//在(100,100)這個文件,輸出Helloworld。	EndPaint(hWnd, &ps);	break;即:

你可以將這個hdc,理解成在這個窗體畫東西的畫筆。然后呢,各個函數(shù)基本都是名副其實了,值得提醒在TextOut函數(shù)中,不像VC6,在VS2010中,所有那些LPCTSTR,不能直接放個字符串上去,要在前面加個大寫L,強行轉化一下。將一個普通字符串轉化為 系統(tǒng)中的窗體字符(大概就是這個意思)。所以你就知道C++各種各樣的變量是多么蛋疼,php等無變量類型的設計是多么偉大。

寫到這里就寫完了,運行結果如下圖所示:

最后,做個小終結吧。

寫C++的Win32窗體程序,別拿以前C語言那種,從0開始的思維往上面套。就是系統(tǒng)已經(jīng)給你一個框架,你按照他的要求在這個框架上面改。

起步的時候,并不需要對這個框架有多熟悉,先從這個框架的一些基本東西入手,實現(xiàn)一些最基本的功能。

程序猿出來混也基本上是如此,很少讓你拿一門語言從0開始的,基本上都是在框架中修修補補,創(chuàng)造。

或者在了解Win32窗體程序的同時,Win32最基本的WIN API同時,能提高一下自己面對框架的能力。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 沛县| 咸丰县| 天峻县| 文成县| 陇南市| 双柏县| 邳州市| 浑源县| 临湘市| 云林县| 时尚| 始兴县| 师宗县| 丰原市| 汉沽区| 舟山市| 望江县| 遵化市| 中山市| 集安市| 托里县| 濮阳市| 武安市| 聊城市| 韩城市| 拜泉县| 佛冈县| 双牌县| 高雄县| 西乡县| 镇雄县| 鱼台县| 清河县| 噶尔县| 琼海市| 娱乐| 铜山县| 抚远县| 濮阳县| 南安市| 衡东县|