VC筆記-20080908

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()

    {

           *******

     }


===============================================================================================

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章