国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

初識MFC第一天

這篇具有很好參考價值的文章主要介紹了初識MFC第一天。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

剛開始進(jìn)入Win32開發(fā)時,會發(fā)現(xiàn)一些變量類型似乎在C語言中未曾見過。其實這些變量類型或是與C/C++已有的數(shù)據(jù)類型相近的,是通過C語言的原始類型重新定義而成的。引入這些數(shù)據(jù)類型的主要目的是為了便于程序員開發(fā)Windows應(yīng)用程序,增強程序的可讀性;另一個目的是為了便于代碼移植,從16位操作系統(tǒng)升級到32位操作系統(tǒng)的過程中,這些重新定義的數(shù)據(jù)類型就起了相當(dāng)重要的作用。
這些重新定義的變量類型就叫做Windows數(shù)據(jù)類型,主要定義在Windef.h的系統(tǒng)頭文件中。當(dāng)包含了Windows.h或者其他任何Windows頭文件,都會自動包含Windef.h.。下面列舉出一些常見的Win32數(shù)據(jù)類型:
初識MFC第一天
初識MFC第一天
初識MFC第一天


一、初識MFC

1、MFC的動態(tài)鏈接和靜態(tài)鏈接:
在使用MFC應(yīng)用程序向?qū)陆üこ虝r,選擇“As a statically linked library”這個選項會編譯器把MFC類庫代碼編譯到執(zhí)行文件內(nèi)部;選擇“As a shared DLL”使用系統(tǒng)內(nèi)有共享的MFC動態(tài)庫。前者編譯出來的雖然尺寸較大,但是不需要系統(tǒng)提供動態(tài)庫支持更加安全。在各個軟件公司內(nèi)一般要求使用靜態(tài)鏈接,要求新建MFC工程時都使用靜態(tài)鏈接方式。
2、API和MFC的關(guān)系:
API(Application Programming Interface):應(yīng)用程序編程接口,是由操作系統(tǒng)提供給開發(fā)者的C語言格式的全局函數(shù)。第三節(jié)用到的GetDlgItemInt和SetDlgItemInt函數(shù)就是API函數(shù),這些函數(shù)是與對象無關(guān)的C格式函數(shù)。Win32是面向API的編程平臺,操作系統(tǒng)提供的API數(shù)量相當(dāng)龐大,而且沒有分類難于組織和記憶。
MFC(Microsoft Fundation Classes):微軟的基礎(chǔ)類庫,這個類庫分類封裝了大部分Windows API,便于開發(fā)人員分類了解類庫函數(shù)功能。學(xué)習(xí)過C++封裝原理都知道,沒有封裝類的函數(shù)接口無論功能有多么強大,但是對于開發(fā)者來說都是難于使用和難于記憶的。就如同沒有機箱和按鈕的電視機,選臺或調(diào)節(jié)音量就得到電視機主板上去找接口一樣。封裝類就就如同為電視機安裝上機箱和按鈕而且還有遙控器,選臺調(diào)節(jié)音量操作都非常方便。


MFC封裝的數(shù)據(jù)類型不是函數(shù)庫而是類庫,最常用的基本類型有字符串類(CString)、文件類(CFile)和時間類(CTime)等。用于幾何空間的類有坐標(biāo)點(CPoint)、空間尺寸(CSize)和矩形區(qū)域類(CRect)等,還有用來記錄個群體數(shù)據(jù)的集合類,鏈表(CList)、動態(tài)數(shù)組(CArray)和映射類(CMap)等等。
C++成員函數(shù)尾部帶const修飾,表示該函數(shù)禁止修改類對象內(nèi)的數(shù)據(jù),稱作“只讀成員函數(shù)”或者“常成員函數(shù)”。MFC類庫中有大量此類成員函數(shù),表示調(diào)用該成員函數(shù)時對象自身不會被改變。

二、初始相關(guān)API

代碼如下(示例):

LPCSTR  中C代表 const char*
LPSTR 沒有C就是char*

以前從Main函數(shù)入口現(xiàn)在從WinMain入口
int CALLBACK WinMain(
  _In_  HINSTANCE hInstance,
  _In_  HINSTANCE hPrevInstance,
  _In_  LPSTR lpCmdLine,
  _In_  int nCmdShow
);

1、彈出消息:圖標(biāo)和文字
int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);
2、查找主窗口:根據(jù)標(biāo)題或者窗口類型 返回類型也是hwnd窗口類型
HWND WINAPI FindWindow(LPCTSTR lpClassName,LPCTSTR lpWindowName);

 auto h = FindWindow("Notepad", NULL);  //類型
 HWND hwnd = FindWindow(NULL, "API知識點.txt - 記事本"); //標(biāo)題名

3、設(shè)置標(biāo)題文字:
BOOL WINAPI SetWindowText(HWND hWnd,LPCTSTR lpString);

4、獲取窗口標(biāo)題文字:
int WINAPI GetWindowText(HWND hWnd,LPTSTR lpString, int nMaxCount);


5、改變窗口位置和大小:
BOOL WINAPI MoveWindow(
 HWND hWnd,
 int X,
  int Y,
  int nWidth,
 int nHeight,
 BOOL bRepaint
);

對FindWindow、SetWindowText、GetWindowText基礎(chǔ)應(yīng)用:

#include<Windows.h>
int WinMain(
    _In_ HINSTANCE hInstance,
    _In_opt_ HINSTANCE hPrevInstance,
    _In_ LPSTR lpCmdLine,
    _In_ int nShowCmd
) {
   auto h = FindWindow("Notepad", "API知識點.txt - 記事本");
   auto x = FindWindow("Notepad", "提綱.txt - 記事本");

    if (!h)
       return -1;
 //  bool b =  SetWindowText(h, "hhh");
   char s[256];
   int n =  GetWindowText(h, s, sizeof(s));
   SetWindowText(x, s);
   return 0;
}

附錄

什么是API(Application Programming Interface)
a)第一方接口:C語言函數(shù)庫,C++類庫(STL) Standard Template Library,
b)第二方接口:是操作系統(tǒng)提供的函數(shù)庫:比如windows下是CreateThread、linux下是pthread_create
c)第三方接口:某個公司的接口,比如mysql是Oracle公司提供的mysql.h里面的所有函數(shù)。
opencv是IBM研發(fā)的圖形開發(fā)庫,包括識別,生成框圖,計算面積等等。
點云(PCL)庫包括三維形狀的計算等等文章來源地址http://www.zghlxwxcb.cn/news/detail-500834.html

到了這里,關(guān)于初識MFC第一天的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 熱愛python的第一天:初識python,搭建python環(huán)境,運行第一個python小程序

    熱愛python的第一天:初識python,搭建python環(huán)境,運行第一個python小程序

    ?目錄 專欄導(dǎo)讀? 1 初始python python 概述 python的應(yīng)用領(lǐng)域? ?應(yīng)用python的公司 ?2 搭建python 開發(fā)環(huán)境 ?2.1 安裝python(以windows 系統(tǒng)為例)(1)下載安裝包? (2) 下載保存后打開文件夾點擊以管理員身份運行 ?(3)選擇自定義安裝,同時將add python3.9 to path勾上。 ?(4)測試

    2024年02月13日
    瀏覽(29)
  • JAVA獲取本日,本日開始時間本周、本月和本年的第一天和最后一天

    JAVA獲取本日,本日開始時間本周、本月和本年的第一天和最后一天

    這個是我自己再項目中寫到的 可以借鑒 打印運行結(jié)果如下

    2024年02月13日
    瀏覽(28)
  • STM32 | 零基礎(chǔ) STM32 第一天

    STM32 | 零基礎(chǔ) STM32 第一天

    1、STM32概念 STM32: 意法半導(dǎo)體基于ARM公司的Cortex-M內(nèi)核開發(fā)的32位的高性能、低功耗單片機。 ST :意法半導(dǎo)體 M :基于ARM公司的Cortex-M內(nèi)核的高性能、低功耗單片機 32 :32位單片機 2、STM32開發(fā)的產(chǎn)品 STM32開發(fā)的產(chǎn)品:無人機、掃地機器人、3D打印機、平衡機、智能手環(huán)等 3、 學(xué)習(xí)

    2024年03月13日
    瀏覽(23)
  • STM32 | STM32到底是什么?(第一天)

    STM32 | STM32到底是什么?(第一天)

    零基礎(chǔ) STM32 第一天 一、認(rèn)知STM32 1、STM32概念 STM32:意法半導(dǎo)體基于ARM公司的Cortex-M內(nèi)核開發(fā)的32位的高性能、低功耗單片機。 ST:意法半導(dǎo)體 M:基于ARM公司的Cortex-M內(nèi)核的高性能、低功耗單片機 32:32位單片機 2、STM32開發(fā)的產(chǎn)品 STM32開發(fā)的產(chǎn)品:無人機、掃地機器人、3D打印機、

    2024年03月09日
    瀏覽(22)
  • 鴻蒙開發(fā)第一天

    鴻蒙開發(fā)第一天

    一、開發(fā)準(zhǔn)備工作 1、開發(fā)工具的安裝 1)下載地址:https://developer.huawei.com/consumer/cn/deveco-studio/ 2)查詢API文檔鏈接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V2/syscap-0000001408089368-V2 二、ArkTS語言 1、ArkTS語言特點主打一個:開發(fā)效率高,開發(fā)體驗好 2、TypeScript語法學(xué)習(xí)

    2024年02月03日
    瀏覽(19)
  • 初學(xué)unity開發(fā)學(xué)習(xí)筆記----第一天

    初學(xué)unity開發(fā)學(xué)習(xí)筆記----第一天

    以下是學(xué)習(xí)unity知識的心得,類似備忘錄,肯定是存在有漏洞的地方或者專業(yè)名詞使用不恰當(dāng)?shù)牡胤?。?!?目標(biāo):編寫小球wasd移動的效果 1.下載unity hub和unity引擎: (1).前往官網(wǎng):Unity實時內(nèi)容開發(fā)平臺 -實時3D引擎、2D、VRAR可視化數(shù)據(jù) | Unity中國官網(wǎng) (2).選擇unity選項卡,選擇下載

    2024年02月09日
    瀏覽(94)
  • 第一章 初識STM32

    第一章 初識STM32

    目錄 1.1 STM32簡介 1.1.1 STM32出現(xiàn)的背景 1.1.2 STM32的作用即應(yīng)用領(lǐng)域 1.1.3 STM32芯片型號的選擇 1.2 STM32F103ZET6芯片簡介 ????????STM32 是意法半導(dǎo)體(STMicroelectronics)公司推出的一款 32 位 ARM Cortex-M 微控制器。它具有高性能、低功耗、豐富的外設(shè)和廣泛的應(yīng)用,適用于工業(yè)自動化

    2024年02月05日
    瀏覽(20)
  • python版《羊了個羊》游戲開發(fā)第一天

    python版《羊了個羊》游戲開發(fā)第一天

    Python小型項目實戰(zhàn)教學(xué)課《羊了個羊》 版本1.0:基本開發(fā) 課次 內(nèi)容 技術(shù) 第一天 基本游戲地圖數(shù)據(jù) 面向過程 第二天 鼠標(biāo)點擊和移動 面向?qū)ο?第三天 消除 設(shè)計模式:單例模式 第四天 完整游戲過程 架構(gòu):Model-View-ViewModel 第五天 多層重疊的方塊 數(shù)據(jù)結(jié)構(gòu) (計算機考研數(shù)據(jù)

    2024年02月13日
    瀏覽(16)
  • 【Git企業(yè)開發(fā)】第一節(jié).Git 初識

    【Git企業(yè)開發(fā)】第一節(jié).Git 初識

    作者簡介:大家好,我是未央; 博客首頁: 未央.303 系列專欄: 每日一句:人的一生,可以有所作為的時機只有一次,那就是現(xiàn)在?。。。?! 文章目錄 前言 課程目標(biāo) 初始Git 一、Git 安裝 二、Git 基本操作 2.1 創(chuàng)建Git本地倉庫 2.2 配置Git 2.3 查看.git文件 三、認(rèn)識工作區(qū)、暫存

    2024年02月08日
    瀏覽(62)
  • 【Spring進(jìn)階系列丨第一篇】初識Spring開發(fā)

    【Spring進(jìn)階系列丨第一篇】初識Spring開發(fā)

    小伙伴們大家好,我是陳橘又青,今天起 《Spring進(jìn)階系列》 開始更新。本專欄將涵蓋Spring框架的核心概念、配置管理、Web開發(fā)、AOP、Boot、Security、Data、Integration和Batch等多個主題。通過理論講解和實際案例的剖析,幫助讀者深入理解Spring框架的原理和應(yīng)用技巧,提升開發(fā)人員

    2024年02月05日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包