午夜激情四射在线播放视频网站|2020亚洲国产精品无码|国产精品免费看久久久网|欧美日韩精品一区三区

lpctstr,font函數(shù)原型

農(nóng)機(jī)大全網(wǎng)(www.digitalhomeuk.com)最新農(nóng)機(jī)信息:lpctstr,font函數(shù)原型,農(nóng)機(jī)新產(chǎn)品,二手農(nóng)機(jī),農(nóng)機(jī)補(bǔ)貼目錄,農(nóng)機(jī)價(jià)格查詢,農(nóng)機(jī)報(bào)價(jià)大全,更多農(nóng)機(jī)資訊請(qǐng)查看:農(nóng)機(jī)資訊

  lpctstr,font函數(shù)原型

正文

文章目錄

  • lpctstrfont函數(shù)原型?
  • 什么叫做對(duì)話框?
  • 舉例說(shuō)明window對(duì)象中常用的消息框函數(shù)?
  • Create?
  • 請(qǐng)舉一個(gè)腳本語(yǔ)言安防好是Python或Lua的例子?

lpctstrfont函數(shù)原型?

原型是:

HFONT CreateFont(int cHeight, //字體的邏輯高度

int cWidth, //字體的邏輯寬度

int cEscapement, //指定移位向量相對(duì)X軸的偏轉(zhuǎn)角度

int cOrientation, //指定字符基線相對(duì)X軸的偏轉(zhuǎn)角度

int cWeight, //設(shè)置字體粗細(xì)程度

DWORD bItalic, //是否啟用斜體

DWORD bUnderline, //是否啟用下劃線

DWORD bStrikeOut, //是否啟用刪除線

DWORD iCharSet, //指定字符集

DWORD iOutPrecision, //輸出安防

DWORD iClipPrecision, //剪裁安防

DWORD iQuality, //輸出質(zhì)量

DWORD iPitchAndFamily, //字體族

LPCSTR pszFaceName //字體名

);

什么叫做對(duì)話框?

對(duì)話框 一種次要窗口包含按鈕和各種選項(xiàng)通過(guò)它們可以完成特定命令或任務(wù)。

對(duì)話框與窗口有區(qū)別它沒(méi)有安防大化按鈕、沒(méi)有安防小化按鈕、不能改變形狀大小 對(duì)話框:是人機(jī)交流的一種方式用戶對(duì)對(duì)話框進(jìn)行設(shè)置計(jì)算機(jī)就會(huì)執(zhí)行相應(yīng)的命令。

對(duì)話框中有單選框、復(fù)選框等。

對(duì)話框的組成 對(duì)話框主要由兩部分組成。

對(duì)話框資源:可以使用對(duì)話框編輯器來(lái)配置對(duì)話框的界面如對(duì)話框的大小、位置、樣式對(duì)話框中控件的類型和位置等。

另外我們還可以在程序的執(zhí)行過(guò)程中動(dòng)態(tài)創(chuàng)建對(duì)話框資源。

對(duì)話框類:在MFC程序中可以使用向?qū)椭脩艚⒁粋€(gè)與對(duì)話框資源相關(guān)聯(lián)的類通常這個(gè)類由CDialog類派生。

對(duì)話框的類型 對(duì)話框可以分為模式對(duì)話框和無(wú)模式對(duì)話框兩種類型。

CDialog 為了能夠方便的操作對(duì)話框MFC為用戶提供了CDialog類。

它是在屏幕上顯示對(duì)話框的基類與對(duì)話框資源緊密相關(guān)提供了管理對(duì)話框的接口封裝了一些對(duì)話框的相關(guān)操作。

從CDialog的定義代碼可以看出Cdialog提供了兩套構(gòu)建Cdialog對(duì)象的系統(tǒng)分別用于模式對(duì)話框和無(wú)模式對(duì)話框。

無(wú)模式對(duì)話框?qū)ο蟮臉?gòu)建過(guò)程它首先調(diào)用缺省的構(gòu)造函數(shù)生成對(duì)話框?qū)ο笕缓笳{(diào)用Create函數(shù)創(chuàng)建和初始化對(duì)話框。

Cdialog類中的Create函數(shù)有兩種函數(shù)原型: BOOL Create( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL ); BOOL Create( UINT nIDTemplate, CWnd* pParentWnd = NULL ); 其中 參數(shù)lpszTemplateName是無(wú)模式對(duì)話框模板資源的標(biāo)志符; 參數(shù)nIDTemplat是對(duì)話框模板資源的標(biāo)志符它通常以IDD_開(kāi)頭(例如IDD_DIALOG1); 參數(shù)pParentWnd是指向?qū)υ捒驅(qū)ο笏鶎俚母复翱诘闹羔槪ㄈ绻鼮镹ULL則表示對(duì)話框?qū)ο蟮母复翱谑菓?yīng)用程序主窗口)。

如果希望對(duì)話框中它的父窗口創(chuàng)建后馬上被顯示就必須把對(duì)話框模板設(shè)置為WS_VISIBLE形式。

否則需要調(diào)用ShowWindow函數(shù)來(lái)顯示對(duì)話框。

對(duì)于模式對(duì)話框其構(gòu)造函數(shù)如下所示: CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL ); CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL ); 構(gòu)造函數(shù)的參數(shù)說(shuō)明與無(wú)模式對(duì)話框的Create函數(shù)類似。

在模式對(duì)話框中當(dāng)創(chuàng)建了對(duì)話框?qū)ο蠛罂梢酝ㄟ^(guò)調(diào)用DoModal函數(shù)來(lái)顯示對(duì)話框。

一般情況下無(wú)論是模式對(duì)話框還是無(wú)模式對(duì)話框都有兩個(gè)按鈕OK和CANCEL。

對(duì)話框?yàn)樗鼈兲峁┝四J(rèn)的消息處理函數(shù)OnOk和OnCancel。

調(diào)用這兩個(gè)函數(shù)都將關(guān)閉對(duì)話框。

所不同的是默認(rèn)的OnOk函數(shù)中關(guān)閉對(duì)話框前將更新對(duì)話框數(shù)據(jù)而默認(rèn)的OnCancel函數(shù)不更新對(duì)話框數(shù)據(jù)。

當(dāng)CDialog類檢測(cè)到OK或Cancel鍵時(shí)它將調(diào)用::EndDialog函數(shù)。

EndDialog函數(shù)雖然結(jié)束了對(duì)話框應(yīng)用程序但卻并沒(méi)有刪除對(duì)話框?qū)ο筢尫艃?nèi)存。

這對(duì)于模式對(duì)話框來(lái)說(shuō)不是問(wèn)題它的生存時(shí)間不長(zhǎng)我們一般在棧上創(chuàng)建它們;但無(wú)模式對(duì)話框則不同它的生存時(shí)間更長(zhǎng)我們通常在棧上創(chuàng)建它們并且希望它在消失之前能夠刪除自己。

因此大多數(shù)情況下我們需要在無(wú)模式對(duì)話框中重載OnOK和OnCancel函數(shù)加入DestroyWindows函數(shù)來(lái)徹底地刪除它。

對(duì)話框數(shù)據(jù)交換和驗(yàn)證機(jī)制 在VC中所有的對(duì)話框函數(shù)都是使用C++代碼實(shí)現(xiàn)的它并沒(méi)有采用特殊的資源或“奇特”的宏但卻可以很好地實(shí)現(xiàn)用戶與應(yīng)用程序之間的交互工作這里的關(guān)鍵就在于對(duì)話框應(yīng)用程序中廣泛采用的對(duì)話框數(shù)據(jù)交換和驗(yàn)證機(jī)制。

對(duì)話框數(shù)據(jù)交換(DDX,Dialog Data Exchange)用于初始化對(duì)話框中的控件并獲取用戶的數(shù)據(jù)輸入而對(duì)話框數(shù)據(jù)驗(yàn)證(DDV,Dialog Data Validation)則用于驗(yàn)證對(duì)話框中數(shù)據(jù)輸入的有效性。

MFC在每個(gè)對(duì)話框類中提供了一個(gè)用于重載的虛函數(shù)——DoDataExchange來(lái)實(shí)現(xiàn)對(duì)話框數(shù)據(jù)交換和驗(yàn)證工作。

對(duì)話框數(shù)據(jù)交換 如果使用DDX機(jī)制則通常在OnInitDialog程序或?qū)υ捒驑?gòu)造函數(shù)中設(shè)置對(duì)話框?qū)ο蟪蓡T變量的初始值。

在對(duì)話框即將顯示前應(yīng)用程序框架的DDX機(jī)制將成員變量的值傳遞給對(duì)話框的控件當(dāng)對(duì)話框響應(yīng)DoModal或Create而被顯示時(shí)對(duì)話框控件將“顯示”這些值。

Cdialog類中的OnInitDialog函數(shù)默認(rèn)時(shí)將調(diào)用CWnd類的UpdateData成員函數(shù)初始化對(duì)話框中的控件。

UpdateData函數(shù)的原型如下: BOOL UpdateData( BOOL bSaveAndValidate = TRUE ); 函數(shù)參數(shù)為TRUE即將對(duì)話框及其控件中的數(shù)據(jù)傳遞給程序代碼中的成員變量; 函數(shù)參數(shù)為FALSE即將類中的數(shù)據(jù)狀態(tài)傳遞給對(duì)話框及其控件。

當(dāng)用戶重載DoDataExchange函數(shù)時(shí)也就為每一個(gè)數(shù)據(jù)成員(控件)指定了一個(gè)DDX函數(shù)調(diào)用。

對(duì)話框數(shù)據(jù)驗(yàn)證 除了調(diào)用DDX參數(shù)指定數(shù)據(jù)交換外用戶還可以使用DDV函數(shù)進(jìn)行對(duì)話框數(shù)據(jù)驗(yàn)證。

在調(diào)用控件的DDX函數(shù)后必須立即調(diào)用該控件的DDV函數(shù)。

大部分DDV函數(shù)的原型如下所示。

DDV_MinMaxCustom(pDX, Data, MinData, MaxData); 其中參數(shù)pDX是一個(gè)指向CdataExchange對(duì)象的指針參數(shù)Data中存放著即將被驗(yàn)證的數(shù)據(jù)后兩個(gè)參數(shù)用于定制數(shù)據(jù)的范圍。

CdataExchange類 如果僅僅需要使用對(duì)話框數(shù)據(jù)一般沒(méi)有必要了解數(shù)據(jù)交換/驗(yàn)證的核心內(nèi)容。

但在了解了數(shù)據(jù)交換和驗(yàn)證的實(shí)質(zhì)后用戶就可以編寫自己的數(shù)據(jù)交換和驗(yàn)證代碼定制DDX/DDV. 對(duì)話框控件 控件是一個(gè)可以與其交互以完成輸入或操作數(shù)據(jù)操作的對(duì)象它也是一種特殊的窗口。

控件通常出現(xiàn)在對(duì)話框或工具欄中。

Windows提供了多種多樣的控件在MFC應(yīng)用程序中能夠使用的控件通??梢苑譃槿N。

1)windows公用控件:包括編輯控件、按鈕、列表框、組合框、滑動(dòng)條控件等另外也包括所有者描述的控件。

2)ActiveX控件:既可以在對(duì)話框中使用也可以在HTML網(wǎng)頁(yè)中使用。

3)由MFC提供的其他控件類 我們主要介紹安防種類型的控件——Windows公用控件。

Windows操作系統(tǒng)提供了多種windows公用控件這些控件對(duì)象都是可編程的Visual C++的對(duì)話框編輯器支持將這些控件對(duì)象添加到對(duì)話框中。

用戶可以在工具箱的對(duì)話框編輯器中看到這些windows公用控件。

MFC為了更好的支持windows公用控件提供了多種控件類每一個(gè)控件類封裝一種控件并提供相應(yīng)的成員函數(shù)來(lái)管理操作控件。

舉例說(shuō)明window對(duì)象中常用的消息框函數(shù)?

通常來(lái)說(shuō)消息框在 windows 操作系統(tǒng)的 winAPI 里提供有 MessageBox 函數(shù)。函數(shù)原型:int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);參數(shù): hWnd:彈出該對(duì)話框的窗體的句柄若沒(méi)有可以寫NULL。不寫NULL就是模態(tài)的寫NULL就是非模態(tài)。

lpText:消息框中顯示的內(nèi)容。如果使用了Unicode庫(kù)需要使用TEXT宏對(duì)字符串進(jìn)行轉(zhuǎn)化。 lpCaption:消息框的標(biāo)題。如果使用了Unicode庫(kù)需要使用TEXT宏對(duì)字符串進(jìn)行轉(zhuǎn)化。 uType:使用此參數(shù)指定消息框的類型(提示、警告、錯(cuò)誤等)、消息框中顯示的按鈕(確定、取消、忽略、重試等)及其他選項(xiàng)??扇〉闹涤?。

Create?

Create是一個(gè)可從CFrameWnd繼承而來(lái)的成員函數(shù)用于窗口的創(chuàng)建和設(shè)置。 Create是MFC中的一個(gè)構(gòu)造函數(shù)用于生成在屏幕上可見(jiàn)的窗口。 示例如下: Create(NULL,_T("Hello MFC")); 該函數(shù)將會(huì)(在已創(chuàng)建窗體對(duì)象的前提下)生成一個(gè)在屏幕上可以看到的窗口窗口的標(biāo)題文本為Hello MFC。 CFrameWnd::Create的原型如下: BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle = WS_OVERLAPPEDWINDOW, const RECT& rect = rectDefault, CWnd* pParentWnd = NULL, LPCTSTR lpszMenuName = NULL, DWORD dwExStyle = 0 CCreateContext* pContext = NULL) Create接收的8個(gè)參數(shù)中的6個(gè)由默認(rèn)值定義如無(wú)特殊要求那么只需要執(zhí)行安防少量的操作為函數(shù)的前兩個(gè)參數(shù)指定值對(duì)剩下的6個(gè)參數(shù)接受默認(rèn)值。 安防個(gè)參數(shù)lpszClassName指定了窗口基于WNDCLASS類的名稱若將其設(shè)定為NULL則會(huì)創(chuàng)建一個(gè)基于由主結(jié)構(gòu)注冊(cè)的WNDCLASS類的默認(rèn)框架窗口。 lpszWindowName參數(shù)則指定將在窗口的標(biāo)題欄出現(xiàn)的文本。 調(diào)用Create函數(shù)可以通過(guò)指定別的樣式或選擇組合樣式來(lái)更改窗口樣式在CFrameWnd::Create文檔中可以找到完整的窗口樣式列表。

請(qǐng)舉一個(gè)腳本語(yǔ)言安防好是Python或Lua的例子?

這以Python為例簡(jiǎn)單介紹Python是如何調(diào)用Windows API的主要用到pywin32這個(gè)模塊實(shí)驗(yàn)環(huán)境Win10+Python3.6+PyCharm5.0主要內(nèi)容如下:

1.首先安裝pywin32模塊這個(gè)直接在cmd窗口輸入命令“pip install pywin32”就行如下:

2.接著我們就可以導(dǎo)入win32api和win32con模塊(隸屬于pywin32)簡(jiǎn)單調(diào)用一個(gè)對(duì)話框測(cè)試代碼如下非常簡(jiǎn)單主要用到MessageBox這個(gè)API函數(shù)函數(shù)原型int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType)其中第1個(gè)參數(shù)是指明窗口第2個(gè)參數(shù)為窗口顯示內(nèi)容第3個(gè)參數(shù)為窗口標(biāo)題第4個(gè)參數(shù)為對(duì)話框按鈕和圖表:

程序運(yùn)行截圖如下:

3.這里你也可以使用ctypes模塊加載Windows API(其實(shí)Windows API也就是dll動(dòng)態(tài)庫(kù))測(cè)試代碼如下也非常簡(jiǎn)單:

程序運(yùn)行截圖如下:

更多說(shuō)明可以查看安防文檔http://timgolden.me.uk/pywin32-docs/contents.html非常詳細(xì)。

3.安防后這里以調(diào)用qq窗口實(shí)現(xiàn)自動(dòng)發(fā)送消息為例主要用到win32guiwin32conpyperclip這3個(gè)模塊基本思路先獲取qq窗口句柄然后將發(fā)送內(nèi)容寫入剪切板接著由剪切板寫入qq消息框安防后模擬發(fā)送按鈕發(fā)送主要代碼如下:

點(diǎn)擊運(yùn)行程序截圖如下已經(jīng)成功發(fā)送消息:

至此我們就完成了利用Python來(lái)調(diào)用Windows API。總的來(lái)說(shuō)整個(gè)過(guò)程不難但相關(guān)資料和文檔需要自己好好研究比較復(fù)雜繁瑣網(wǎng)上也有相關(guān)示例感興趣的話可以搜一下希望以上分享的內(nèi)容能對(duì)你有所幫助吧也歡迎大家評(píng)論、留言進(jìn)行補(bǔ)充。

返回:安防新聞

標(biāo)簽:對(duì)話   函數(shù)   窗口

廣告咨詢:18215288822   采購(gòu)熱線:18215288822

聲明:農(nóng)機(jī)大全所有(圖文、音視頻)均由用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,版權(quán)歸原作者。若您的權(quán)利被侵害,請(qǐng)聯(lián)系 56325386@qq.com 刪除。

載注明出處:http://www.digitalhomeuk.com/news/295220.html

乡宁县| 大名县| 汕尾市| 平和县| 永福县| 阿克陶县| 三亚市| 巫山县| 金山区| 高台县| 元阳县| 柘城县| 库伦旗| 绥德县| 永吉县| 清丰县| 叙永县| 定日县| 奉化市| 庆安县| 邵东县| 阿拉尔市| 龙川县| 湖南省| 邵阳市| 内黄县| 苗栗市| 东源县| 偏关县| 曲阜市| 伊宁市| 通州区| 三门县| 三亚市| 五华县| 厦门市| 嫩江县| 松潘县| 通渭县| 鹤山市| 武邑县|