1.改變標題欄
void CMy1111Doc::SetTitle(LPCTSTR lpszTitle)
{
// TODO: Add your specialized code here and/or call the base class
CDocument::SetTitle("MyTitle");
}
用class wazid 在文檔類加這個函數,在SetTitle裏寫你要的標題,你的標題前半部分就改了,然後改後半部分,可以在Resource管理器下,找到String Table項,在裏面點第一行,把第一個斜槓n前的內容該成你想要的,就把後半部分改了,至於該圖標,跟更簡單了,只要把Icon下的那個IDR_MAINFRAME的哪個圖標換成你想要的,就可以了.
2.在VIEW中輸出文本實現自動換行(用DrawText而非TextOut)
如果用textout你最好自己算好長度然後自己換行寫.但是你可以作用DrawText並設置FORMAT爲DT_WORDBREAK;
XXXX::OnDraw(....)
{
....
CRect m_rect;
GetClentRect(&m_rect);
pDC->DrawText("XXXXXXXX...",&m_rect,DT_LEFT|DT_WORDBREAK);
.....
}
這樣如果字串長度超過了m_rect的範圍,會自動換行。
3.單選按鈕設爲選中狀態爲:SetCheck(1),非選中狀態爲:SetCheck(0)
在創建一組單選按鈕時,如果幾個單選按鈕的ID號相同,那麼點擊任何一個按鈕的消息都是第一個按鈕的處理消息.然後在第一個按鈕的消息處理函數中判斷哪個按鈕點擊了,用button.GetCheck()來查看哪個按鈕被點擊了.
4.設置VIEW中文字的背景透明
SetbkMode(Canvas.Handle, Transparent); //設置文字背景透明
5.HDC 和 PDC 轉換
通過pDC獲得hdc: HDC hdc=pDC->GetSafeHdc();
通過hdc獲得pDC: CDC *pDC=new CDC; pDC->Attach(hdc);
6.加載套接字
在VC程序中加載套接字時,首先在AFXSTD.H中加入afxsock.h,然後繼承CSOCKET類,在C***APP的INISTINSTANCE()中加入AfxSocketInit(),哪一步都不能缺,否則就不能通信
if (!AfxSocketInit())
{
AfxMessageBox("inet failed!");
return FALSE;
}
7.不顯示菜單
去掉菜單,在CMainFrame::PreCreateWindow中加入
if(cs.hMenu!=NULL)
{
::DestroyMenu(cs.hMenu); // delete menu if loaded
cs.hMenu = NULL; // no menu for this window
}
8.某個類試圖不顯示
Q:vc的WORKSPACE中某個類無法顯示?
A:還有個更簡單的解決方法:隨便改一下那個類的頭文件,然後改回去,保存即可
9.加載數據庫
VC添加ODBC數據庫時在AFXSTD.H中包含以下頭文件:
#include <odbcinst.h>//ODBC數據庫API頭文件
#include <afxdb.h>
10.打開RES失敗
VC++中打開RES文件時失敗,提示這個文件已在另一個編輯器中打開?
方案:已經解決了,將opt文件,和ncb文件刪除,重新打開就可以了,哈哈
11.在VIEW中動態創建按鈕
1).在VIEW.H中添加 CButton m_myButton;
2).在VIEW中添加WM_CREATE響應函數,C***View::OnCreate()並在其中添加:
m_myButton.Create(_T("搶答"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(200,325,400,355), this, ID_BUTTON);//ID_BUTTON是該按鈕的ID,提前定義,或者直接數字也可
3).m_myButton.ShowWindow(SW_SHOW);//SW_HIDE
4). afx_msg void OnMyButton(); ON_BN_CLICKED(ID_BUTTON, OnMyButton)
5).添加相應函數:
void CCompClientView::OnMyButton()
{
*******
}
===============================================================================================