VC程式設計總結

2021-04-12 20:51:32 字數 2264 閱讀 6746

1. 顯示和隱藏標題欄

方法一:使用api實現

//隱藏titlebar

long lstyle = ::getwindowlong(this->m_hwnd, gwl_style);

::setwindowlong(this->m_hwnd, gwl_style, lstyle & ~ws_caption);

::setwindowpos(this->m_hwnd, null, 0, 0, 0, 0,

swp_nosize | swp_nomove | swp_nozorder | swp_noactivate | swp_framechanged);

// 顯示titlebar

::setwindowlong(this->m_hwnd, gwl_style, lstyle | ws_caption);

::setwindowpos(this->m_hwnd, null, 0, 0, 0, 0,??swp_nosize | swp_nomove | swp_nozorder | swp_noactivate | swp_framechanged);

方法二:使用cwnd成員函式modifystyle實現

// 隱藏titlebar

modifystyle(ws_caption, 0, swp_framechanged);

// 顯示titlebar

modifystyle(0, ws_caption, swp_framechanged);

2 . 怎麼用sendmessage()來傳送訊息來清空它的內容??

hwnd heditwnd=getdlgitem(idc_edit1)->getsafehwnd();

::sendmessage(heditwnd,wm_settext,(wparam)0,(lparam)"");

3. 彈出檔案的屬性視窗

shellexecuteinfo shexecinfo =;

shexecinfo.cbsize = sizeof(shellexecuteinfo);

shexecinfo.fmask = see_mask_invokeidlist ;

shexecinfo.hwnd = null;

shexecinfo.lpverb = "properties";

shexecinfo.lpfile = "c:/"; //也可以是檔案

shexecinfo.lpparameters = "";

shexecinfo.lpdirectory = null;

shexecinfo.nshow = sw_show;

shellexecuteex(&shexecinfo);

4. 刪除乙個目錄下的所有檔案

bool deletedirectory(lpctstr dirname)

else}}

tempfind.close();

if(!removedirectory(dirname)) //刪除目錄

return true;

}5.lib和dll檔案的區別和聯絡

.dll是在你的程式執行的時候才連線的檔案,因此它是一種比較小的可執行檔案格式,.dll還有其他的檔案格式如.ocx等,所有的.dll檔案都是可執行。

.lib是在你的程式編譯連線的時候就連線的檔案,因此你必須告知編譯器連線的lib檔案在那裡。一般來說,與動態連線檔案相對比,lib檔案也被稱為是靜態連線庫。當你把**編譯成這幾種格式的檔案時,在以後他們就不可能再被更改。如果你想使用lib檔案,就必須:

1 包含乙個對應的標頭檔案告知編譯器lib檔案裡面的具體內容

2 設定lib檔案允許編譯器去查詢已經編譯好的二進位制**

如果你想從你的**分離乙個dll檔案出來代替靜態連線庫,仍然需要乙個lib檔案。這個lib檔案將被連線到程式告訴作業系統在執行的時候你想用到什麼dll檔案,一般情況下,lib檔案裡有相應的dll檔案的名字和乙個指明dll輸出函式入口的順序表。如果不想用lib檔案或者是沒有lib檔案,可以用win32 api函式loadlibrary、getprocaddress。事實上,我們可以在visual c++ ide中以二進位制形式開啟lib檔案,大多情況下會看到ascii碼格式的c++函式或一些過載操作的函式名字。

一般我們最主要的關於lib檔案的麻煩就是出現unresolved symble 這類錯誤,這就是lib檔案連線錯誤或者沒有包含.c、.cpp檔案到工程裡,關鍵是如果在c++工程裡用了c語言寫的lib檔案,就必需要這樣包含:

extern "c"

這是因為c語言寫的lib檔案沒有c++所必須的名字破壞,c函式不能被過載,因此聯結器會出錯。

VC對話方塊程式設計總結

最近開始學習vc,從最簡單的學習,為了更好的理解,因此寫下一些東東。對話方塊程式設計,我理解應該就是單擊乙個按鈕,亦或從選單上面單擊乙個命令,然後顯示乙個對話方塊。因此程式設計中 1 新增乙個對話方塊,從對話方塊屬性中去設定對話方塊名字。2 建立對話方塊類,建立乙個新類,名稱可以隨意,其它使用預設值...

VC對話方塊程式設計總結

最近開始學習vc,從最簡單的學習,為了更好的理解,因此寫下一些東東。對話方塊程式設計,我理解應該就是單擊乙個按鈕,亦或從選單上面單擊乙個命令,然後顯示乙個對話方塊。因此程式設計中 1 新增乙個對話方塊,從對話方塊屬性中去設定對話方塊名字。2 建立對話方塊類,建立乙個新類,名稱可以隨意,其它使用預設值...

VC程式設計技巧

1.得到程式路徑 tchar exefullpath max path getmodulefilename null,exefullpath,max path 2.從對話方塊得到乙個資料夾 char szdir max path browseinfo bi itemidlist pidl bi.hw...