免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
【mfc】03 基本對話框程序——加法器
【mfc】基本對話框程序——加法器
標(biāo)簽: mfcc++win32對話框callback
2015-01-03 19:30 1750人閱讀 評論(0)  舉報
 分類:
win32&mfc(19) 
版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許歡迎亂轉(zhuǎn)載,標(biāo)好作者+原文地址就可以了!感謝欣賞!覺得好請回個貼!
都說好了是vc6的mfc,這個加法器當(dāng)然不同于數(shù)電與單片機(jī)的加法器,^_^開個玩笑,
正式轉(zhuǎn)入正題,
前兩篇mfc,甚至連mfc都不是,僅僅是win32程序,都只不過是一個普通的彈窗程序而已,
這次繼續(xù)為大家?guī)淼暮唵蔚膚in32程序,
不過已經(jīng)有基本功能了,能夠?qū)崿F(xiàn)兩個編輯框里面的數(shù)據(jù)相加。
一、基本目標(biāo)
創(chuàng)建如下程序:
有兩個系統(tǒng)自帶的按鈕,原為“確定”與“取消”,現(xiàn)在改為“計算”與“關(guān)閉”
“計算”按鈕能夠把兩個可編輯的對話框里面的數(shù)字相加并輸出到第三個對話框,
“關(guān)閉”按鈕自然能夠關(guān)閉對話框了
二、制作過程
1、首先創(chuàng)建一個簡單的win32程序,并在里面創(chuàng)建資源腳本,這個怎么創(chuàng)建請查閱我之前的《【mfc】對于對話框程序的優(yōu)化與為程序創(chuàng)建圖標(biāo)》(點(diǎn)擊打開鏈接)一文,唯一的不同,是這次在資源腳本中插入的是對話框,而不是圖標(biāo),當(dāng)然,為了程序更加美觀,你可以參考上文,為其添加圖標(biāo)。
Dialog資源里面還有子選項,這里不需要選擇,如圖所示選擇父資源Dialog即可,選擇“新建”完成創(chuàng)建
2、選擇“新建”完成創(chuàng)建之后則彈出如下的界面:
首先把系統(tǒng)附送的“確定”與“取消”按鈕拖到最下方,單擊這些按鈕,并把其的Caption項改為“確定”與“取消”
在這個界面,通過右側(cè)的控件工具箱,你可以拖出自己需要的控件,配合下方的控件工具欄能夠把控件的位置安排好,點(diǎn)擊任何一個控件設(shè)置好相應(yīng)的屬性,
比如點(diǎn)擊一個靜態(tài)文本,通過編輯其Caption項,可以把"Static"改成"+"
同時請記錄一下每個控件的ID,一會兒寫代碼的時候,有可能用到,需要通過ID來控制
拖錯控件之后,選中,按Delete鍵刪除
弄好之后,點(diǎn)擊左下方的ClassView標(biāo)簽頁,回到WinMain函數(shù)中,如同《【mfc】Helloworld》(點(diǎn)擊打開鏈接)一文中寫代碼。
3、最終把這個對話框里面的控件安排如下圖所示:
切記:
(1)把系統(tǒng)自帶的兩個按鈕的Caption從“確定”改到“計算”,從"取消"改到"關(guān)閉",
(2)對于三個EditField編輯框,請把最右方的那個編輯框的樣式改成“只讀”
具體是點(diǎn)擊這個編輯框,在樣式標(biāo)簽頁,把“只讀”勾上
(3)對于整個大的對話框,請在常規(guī)中修改Caption,使其標(biāo)題為“加法計算器”或者你喜歡的其他,并且在“更多樣式”中把“居中”屬性勾上,這樣,你打開這個程序,這個對話框就會出現(xiàn)在屏幕的中央,而不是左上角。
4、通過ClassView標(biāo)簽頁,回到WinMain函數(shù)中寫下如下的代碼:
[cpp] view plain copy
print?
// dialogbox.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
//一開始記得要引入resource.h,因為我們的對話框就創(chuàng)建在資源腳本中
#include "resource.h"
//這個回調(diào)函數(shù)MainProc是對話框的操作函數(shù),不是真正的入口,是被WinMain中的DialogBox語句所調(diào)用的,
//4個形式參數(shù),返回值BOOL CALLBACK皆是系統(tǒng)要求的,無法改變
BOOL CALLBACK MainProc(
HWND hwndDlg, // handle of dialog box
UINT uMsg, // message
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
//如果有按鈕被單擊
if(uMsg==WM_COMMAND){
//如果點(diǎn)擊的是IDCANCEL按鈕,ID為“IDCANCEL”就是那個“關(guān)閉按鈕”
if(LOWORD(wParam)==IDCANCEL){
//那么我們就結(jié)束對話框。
EndDialog(hwndDlg,IDCANCEL);
//這個true與false沒有太大的區(qū)別,至少是對程序表現(xiàn)出來的東西沒有影響,true是我們寫代碼處理后續(xù)的事情,false是系統(tǒng)處理后續(xù)的系統(tǒng)。
return true;
}
//如果點(diǎn)擊的是IDOK按鈕,ID為“IDOK”就是那個“計算按鈕”
if(LOWORD(wParam)==IDOK){
//拿到IDC_EDIT1編輯框的值,傳到整形edit1,GetDlgItemInt其余參數(shù)為指定動作,據(jù)說hwndDlg是窗口句柄,true是取有符號數(shù),而不是無符號數(shù),但你知道這些又有什么意義呢?
int edit1 = GetDlgItemInt(hwndDlg,IDC_EDIT1,NULL,true);
//拿到IDC_EDIT2編輯框的值,傳到整形edit2,GetDlgItemInt其余參數(shù)為指定動作
int edit2 = GetDlgItemInt(hwndDlg,IDC_EDIT2,NULL,true);
//設(shè)置IDC_EDIT3那個只讀編輯框中的值為edit1+edit2的值
SetDlgItemInt(hwndDlg,IDC_EDIT3,edit1+edit2,true);
return true;
}
}
return 0;
};
//這是程序的主要入口
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR     lpCmdLine,
int       nCmdShow)
{
// TODO: Place code here.
//上來就調(diào)用DialogBox參數(shù),第二個數(shù)值必須我們要彈出的對話框IDD_DIALOG1,也就是剛才在資源腳本中畫的對話框,強(qiáng)制轉(zhuǎn)化為(LPCSTR)才能正常編譯,
//第四個參數(shù)表示這個對話框被處理的函數(shù)為MainProc
DialogBox(hInstance,(LPCSTR)IDD_DIALOG1,NULL,MainProc);
return 0;
}
整個程序的邏輯就是一開始進(jìn)入WinMain函數(shù),然后返回值為BOOL CALLBACK類型的MainProc被調(diào)用,處理完一大堆邏輯之后,完成程序,就這么簡單。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
對話框響應(yīng)WM_KEYDOWN消息
[原創(chuàng)]MFC入門小結(jié)
轉(zhuǎn)貼:MFC edit control 用法
MFC如何去掉對話框的關(guān)閉按鈕?
走出MFC窗口子類化的迷宮
VS2010/MFC編程入門之八(對話框:創(chuàng)建對話框類和添加控件變量)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服