一些編程小技巧—-不斷更新中

來源:互聯網
上載者:User

一、數字轉化成字元

 

      如有 int a = 5

      現在要把 5變成 '5' 放入ch中

int a=5;int ch;ch = a+'0';

二、給對話方塊標題列 添加表徵圖

      要是給一個基於對話方塊的程式的主表單,就比較簡單了

 

     只要將原來的IDR_MAINFRAME 刪除,添加一個ICON 資源,將其命名為 IDR_MAINFRAME,即可。

 

      

 

 

效果

      

      若是給我們自己添加的對話方塊添加表徵圖,方法也很簡單

 

      第一步 添加ICON資源    並命名,如IDI_MY_PIC

      第二步 定義ICON資源控制代碼

             //在對話方塊映射的類的.h檔案中,添加語句HICON m_hIcon;

 

      第三步 關聯ICON控制代碼與資源

            

//假設我們的project名成為MyIcon//在對話方塊的映射類的建構函式中,添加語句m_hIcon = ((CMyIconApp*)AfxGetApp())->LoadIcon(IDI_MY_PIC);

 

      第四步 SetIcon

            //在對話方塊映射類的InitDialog訊息響應中添加代碼SetIcon(m_hIcon,true);SetIcon(m_hIcon,false);

           對於這兩句代碼的作用,網友祁超在其網易部落格中表示:

           原來是向視窗(視窗控制代碼為m_hWnd)發送了一個WM_SETICON訊息,再呼出MSDN,對於這個訊息,MSND上有比較詳細的解釋。如訊息名SETICON所揭示的那樣,發送這個訊息給視窗,是為了讓這個視窗和大表徵圖(large icon)或者小表徵圖(small icon)關聯。在使用者按ALT+TAB鍵切換視窗時,顯示的就是大表徵圖,小表徵圖就是對話方塊視窗標題列上的那個表徵圖。同一的參數m_hIcon, 卻帶有TRUE或者FALSE,這是頗讓人感到疑惑的地方。說白了其實也是很簡單的事情,我們在用VC的資源編輯器編輯表徵圖(icon)時,不是可以選擇不同大小的圖片來進行編輯嗎?這些大小不同的圖,最終都存入到同一個.ico檔案中去了。所以m_hIcon指向的是一組表徵圖,第二個參數(TRUE或者 FALSE)就是用來指定這一組表徵圖中某一類大小的表徵圖的,參數值為TRUE時,指明使用大表徵圖(32*32相素),FALSE指明使用小表徵圖 (16*16像素)。當然,一般程式中我們並沒有對WM_SETICON訊息進行處理,所以這些設定大小表徵圖的事情,都被預設的訊息處理函數DefWindowProc給做掉了。

 

 

三、C++ 檔案包含的標頭檔,其內部實現函數結尾 可以 加 ‘;’也可以不加';'

 

      譬如我們建立了C++ 標頭檔 ‘test.h’

      其內部有實現函數Print()

//test.h#include <stdio.h>void Print(){    printf("Hello HeadFile/n");};       //這裡的分號可以加,也可以不加         //目前我測試是加不加都正確,具體區別,後續在論

 

四、由 ICON 表徵圖的ID獲得其控制代碼的一種取巧方法

 

      遇到過很多次,這個問題,可是總解決不了,無論是上網搜資料,還是在QQ技術群裡問,沒有得到結果

 

      苦惱很久,想到了一個比較巧的方法

 

       比如我們知道一個ICON資源的ID為 IDI_ICON1,

       我們這樣就可以得到其控制代碼m_hmyIcon

 

//App類有一個LoadIcon 函數,用來設定程式的標題的表徵圖
//我們可以先藉助這個函數,把我們想得到的控制代碼得到
//在給它把原來的程式表徵圖還原回去
m_hmyIcon = AfxGetApp()->LoadIcon(IDI_ICON1);  //獲得
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);//還原

 

五、產生隨機數

srand rand 包含在 stdlib.h 標頭檔中

include <time.h>include <stdlib.h>time_t t;srand((unsigned)time(&t));rand();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.