...**vc 共享樂園
vc雕蟲小技集(一)
何志丹
1,避免隨機數相同,可以取當前時間,讀檔案,讀任意記憶體(如未定義變數,有一定
危險).
ctime t = ctime::getcurrenttime();
int n = t.getminute() * 60 + t.getsecond();
while(n-- > 0)
rand();
const int n = 100;
int result = rand()%n;
2, 字串與數的轉換
sprintf,sscanf,其實還有其它許多函式,但只這兩個函式是最容易記住的.因為
它們和printf,scanf,fprint,fscanf的用法類似.
char str[100];
int x = 5;
sprintf(str,"%d",x);
sscanf("10","%x",&x);
3,看乙個鍵是否處於按下狀態以及是否被按下過.
short key = getasynckeystate(vk_f11);
0x8001處於被按下狀態
1兩次呼叫getasynckeystate(vk_f11);之間,f11被按下過.
getasynckeystate,getkeystate指定偽程式碼為vk_lbutton,vk_rbutton就可判斷
滑鼠是否被按下過
4,如何刪除乙個類.
方法一:
1,把檔案刪除.
2,再開啟類嚮導(ctrl+w)類嚮導找不到檔案,會彈出乙個對話方塊remove就行了.
方法二:
1,fileview中刪除.
2,物理刪除.
5,自定義的類沒了:
project->add to project ->files
6,使用pi
include math.h
#define _use_math_defines
#include "math.h"
則 m_pi 就是pi了
7,請問怎樣可以獲得分割槽的卷標??
char buf[max_path];
getvolumeinformation("c://", buf, max_path, null, null, null, null,
null);
afxmessagebox(buf);
8,開啟乙個網頁
9,關閉時,彈出對話方塊讓使用者確認
void cmainframe::onclose()
if(idok != messagebox("你要退出嗎?點確定退出","你要退出
嗎?",mb_okcancel))
return ;
cframewnd::onclose();
10,選單小問題
id_file_open
在資源accelerator中為:
id key
id_file_open ctrl+o
表示在程式中按ctrl+o組合鍵啟用開啟選單(如果檔案選單開啟了,就無效).
在資源menu中為:
id_file_open的標題為開啟(&o).../tctrl+o
&o表示當它的父選單(檔案選單)被開啟後,o啟用檔案選單.
11,sizeof有問題??
class b
bool a;
bool c;
int b;
}; // sizeof (b) == 8
布局:
1 2 3 4
bool bool 填充 填充
1 2 3 4
int ...............
一目了然.:)
這個時候編譯器只在c後插入兩個填充位元組,因為b佔四個位元組,所以自動的以乙個
字的二進位制來填充.
這是編譯器的對齊問題,只要在前面加入
#pragma 1
使得按乙個byte對齊就可以了.
VC雕蟲小技集 一
vc雕蟲小技集 一 何志丹1,避免隨機數相同,可以取當前時間,讀檔案,讀任意記憶體 如未定義變數,有一定危險 ctime t ctime getcurrenttime int n t.getminute 60 t.getsecond while n 0 const int n 100 int res...
VC雕蟲小技集 六
vc 共享樂園 vc雕蟲小技集 六 何志丹 1,如何取得tree control上的checkbox狀態 oninit中加 m treectrl.insertitem item1 m treectrl.insertitem item2 void ccdialogdlg onbutton1 htree...
VC程式設計技巧錦集
問題一 解決workspace中的classview顯示混亂 解答 即新增的成員變數或函式不能顯示 即使顯示出來了變數或函式,雙擊後不能跳至正確的位置。刪除.ncb檔案,再rebuild all,即可。問題二 向專案中加入自己定義的類的簡單方法 解答 選擇insert new class選單,彈出對...