Visual C 開發中常見問題的答案

2021-09-22 12:12:53 字數 4123 閱讀 5513

1、簡述vc6下如何進行程式的除錯

在主選單"build"中,有乙個start build的子選單,它下面包含了go選單(快捷鍵為f5),選擇後,程式將從當前語句進入除錯執行,直到遇到斷點或程式結束。

將滑鼠移動到要除錯的**行,單擊滑鼠右鍵選擇「insert/remove breakpoint」,或者按下f9,可以在該行上新增斷點,此時斷點**行前面出現乙個棕色的圈,再次選擇將清除斷點。進入除錯狀態後,debug選單將取代build選單出現在選單欄中,它下面包含常用的除錯操作,如step over,單步執行並不跟蹤到呼叫的函式內部;其他還包括step into,step out, stop debugging等除錯方法。

2、簡述在vc6建立的工程中字尾為.cpp,.h,.rc,.dsp,.dsw的檔案的作用是什麼?

.cpp是源程式**c++檔案

.h是包含函式宣告和變數定義的標頭檔案

.rc是定義資源的資源指令碼檔案

.dsp是工程檔案,記錄當前工程的有關資訊

.dsw是工作區檔案,乙個工作區可能包含乙個或多個工程

3、已知乙個對話方塊上有乙個編輯框控制項,id為idc_edit1,為其關聯了cedit型別的變數m_edit1,使用兩種方法,說明如何改變編輯框內部的文字為"hello",寫出程式**的片斷。

第一種方法:

m_edit1.setsel(0,-1);

m_edit1.replacesel("hello");

第二種方法:

setwindowtext("hello");

4、簡述使用windows api編寫的乙個基本的windows應用程式框架的結構。

windows api編寫的基本應用程式框架至少應該包含程式入口函式winmain和視窗函式wndproc。在主函式winmain裡面包含視窗類的定義和註冊,視窗的建立和顯示以及訊息迴圈。

5、訊息在windows中的資料型別是什麼,它有哪些成員變數,各有什麼含義

訊息的資料型別是msg,它是乙個結構體,其成員變數主要包括hwnd,表示訊息的視窗控制代碼;message代表訊息的型別;wparam和lparam包含訊息的附加資訊,隨不同的訊息有所不同。

6、windows的滑鼠訊息的長引數lparam與字引數wparam的含義是什麼

滑鼠訊息的長引數lparam的低位元組包含了滑鼠游標位置的x座標值,lparam的高位元組包含了滑鼠游標位置的y座標值;字引數wparam內包含了指示當前按下的各種虛鍵狀態的值。

7、說明使用乙個非模態對話方塊的注意問題和用到的windows api函式

使用乙個非模態對話方塊應該注意一定要在樣式中包含ws_visible才能正常顯示;建立對話方塊使用createdialog函式;訊息迴圈部分應該使用isdialogmessage過濾訊息;關閉對話方塊使用函式destroywindow。

8、簡述在mfc應用程式中updatedata函式的作用及其引數含義與使用場合。

updatedata只有乙個bool型別的引數,updatedata(false)一般用於對話方塊控制項連線的變數值重新整理螢幕顯示;updatedata(true)用於獲取螢幕資料到對話方塊控制項連線的變數中。

9、列舉列表框控制項能夠接受的三個訊息型別,並說明其作用

lb_addstring用於在列表框中加入一項字串;lb_dir用於在列表框中列出指定檔案;lb_gettext用於獲取指定項的文字。

10、在乙個對話方塊上新增了三個單選按鈕,要使它們之間自動實現互斥,應該注意什麼問題,在vc環境下如何操作?

要實現一組單選按鈕的自動互斥,應該讓它們的控制項id值連續,並設定第乙個單選按鈕的group屬性,其他的不設。

11、簡述由乙個文件類派生自己的文件類,並實現文件的訪問需要哪些步驟。

首先為每乙個文件型別從cdocument派生乙個相應的文件類;然後為該文件類新增成員變數以儲存資料;最後過載serialize成員函式以實現文件資料的序列化。

12、列舉檢視類(cview)的三個子類,並簡要說明其作用。

cscrollview類提供檢視的滾動顯示;ceditview類支援在檢視中的文字編輯操作;chtmlview類支援在檢視中顯示和操作html檔案。

13、visual c++ 6.0如何進入除錯狀態,在除錯狀態下能夠顯示哪些除錯視窗,列舉三個,其作用分別是什麼?

啟動除錯後,在view選單的debug window子選單下可以開啟一些輔助除錯的視窗

watch:顯示察看當前語句和前面語句中變數值的視窗

call stack:顯示察看呼叫堆疊的視窗

memory:顯示察看記憶體中內容的視窗

14、說明位圖資源的建立及顯示過程的步驟,並給出相應的windows api函式名。

首先定義位圖控制代碼hbitmap hbitmap;第二步使用loadbitmap載入位圖;第三步,呼叫createcompatibledc向系統申請記憶體裝置環境控制代碼,並呼叫函式selectobject把點陣圖選入記憶體裝置環境;第四步,呼叫bitblt函式將位圖從記憶體裝置環境輸出到指定的視窗裝置環境中,從而實現顯示位圖。

15、如何獲取字型控制代碼從而實現字型的輸出,並給出相應的windows api函式名。

首先定義字型控制代碼變數hfont hf;然後呼叫函式getstockobject獲取系統的字型控制代碼,或者呼叫createfont得到自定義的字型控制代碼;最後呼叫selectobject把字型控制代碼選入裝置環境。

16、列舉三種按鈕的型別,並說明其作用和建立方法之間的不同之處。

常用的按鈕有普通按鈕、單選按鈕、核取方塊,和組框。普通按鈕作用是幫助使用者觸發指定動作;單選按鈕一般各選項之間存在互斥性;核取方塊用來顯示一組選項供使用者選擇,各選項之間不存在互斥;組框主要用於把控制項分成不同的組並加以說明.

17、要使乙個靜態控制項顯示乙個點陣圖並能接受使用者輸入,應該注意什麼問題。

要使靜態控制項顯示位圖,必須設定其風格包含ss_bitmap,並在建立靜態控制項視窗,即呼叫createwindow時指定並載入位圖;要使靜態控制項能夠接收使用者輸入,必須設定其風格包含ss_notify。

18、列舉滾動條控制項的四種型別的動作標識,並說明其發生的場合。

常用的滾動條控制項的動作標識包括(對於垂直滾動條):sb_lineup表示向上滾動一行;sb_linedown表示向下滾動一行;sb_pageup表示向上滾動一頁;sb_pagedown表示向下滾動一頁。

19、說明使系統定時器訊息(wm_timer)的使用方法及其用到的windows api函式

使用定時器訊息的方法是:首先呼叫settimer函式定義定時器訊息,包括訊息產生的時間間隔等;然後在相應的wm_timer訊息處理裡新增定時器訊息響應**;最後呼叫killtimer釋放該定時器。

20、mfc應用程式嚮導能夠建立那幾種型別的應用程式框架,哪些採用了文件/檢視結構。

mfc應用程式嚮導能建立基於單文件(sdi),基於多文件(mdi)和基於對話方塊(dialog based)三種應用程式的框架。其中前兩種採用了文件/檢視結構。

21、列舉五種控制項,說明其作用和mfc對應的類名

cstatic是靜態文字控制項視窗,用於標註、分隔對話方塊或視窗中的其他控制項;cbutton是按鈕控制項視窗,為對話方塊或視窗中的按鈕、單選按鈕和多選按鈕等提供乙個總的類;cscrollbar是滾動條控制項視窗,提供滾動條的功能,用於在對話方塊或視窗中的乙個控制項,通過它在某一範圍內定位;clistbox是列表框控制項視窗,列表框用於顯示一組列表項,使用者可以進行觀察和選擇;cprogressctrl是進度條控制項視窗,用於指示乙個操作的進度。

22、mfc的文件/檢視結構中說明檢視類如何訪問文件類,文件類如何通知檢視類進行更新,給出成員方法名?

mfc的文件/檢視結構中,檢視類通過其成員方法getdocument獲得對應文件類的指標,從而訪問文件類的資料;文件類通過其成員方法updateallviews通知所有檢視,文件已經被修改,檢視應該被重畫。

第一步:為對話方塊的wm_initdialog的訊息響應函式oninitdialog中新增**: settimer(1,100,null);

第二步: 為對話方塊新增wm_timer的訊息相應函式ontimer,並在其中新增**:

ctime tnow;

tnow=ctime::getcurrenttime();

cstring snow=tnow.format("%i:%m:%s");

m_edit1.setsel(0,-1);

m_edit1.replacesel(snow);

第二步: 為對話方塊的wm_destryoy的訊息響應函式ondestroy中新增** killtimer(1);

開發中常見問題

6.開發中常見問題 uiscrollview的自動布局 1.怎麼確定scrollview的約束 通過新增view設定他的約束來控制uiscorllview的滾動範圍 size和center 1.以後盡量先設尺寸在設定center,從frame中取時,他會先確定中心點後沿4周擴散形成設定的尺寸 如果到...

開發中常見問題

本文目錄 這篇文章是專門用來記錄開發中一些常見的bug以及常用的零碎知識點,我會隔一段時間更新內容 回到頂部 1.重複呼叫2次loadview和viewdidload 最好不要在uiviewcontroller的loadview方法中改變狀態列的可視性 比如狀態列由顯示變為隱藏 或者由隱藏變為顯示 ...

開發中常見問題集錦

這篇文章是專門用來記錄開發中一些常見的bug以及常用的零碎知識點,我會隔一段時間更新內容 最好不要在uiviewcontroller的loadview方法中改變狀態列的可視性 比如狀態列由顯示變為隱藏 或者由隱藏變為顯示 因為會導致重複呼叫2次loadview和viewdidload方法 假設狀態列...