Windows API一日一練(34)GetSysColor函數

來源:互聯網
上載者:User
 當你需要自己顯示一個與眾不同的按鈕時,就需要使用下面的方法來建立。當然這裡也是綜合地使用前面學習過的知識進行一次綜合的練習。示範怎麼樣使用眾多的API函數,這裡還可以學會使用GetSysColor函數來擷取系統的顏色。
WINUSERAPI
DWORD
WINAPI
GetSysColor(
    __in int nIndex);
nIndex是系統定義的色彩索引值。

調用這個函數的例子如下:
#001 //
#002 //介面顯示輸出.
#003 //
#004 //蔡軍生 2007/09/12 QQ:9073204 深圳
#005 //
#006 void CCaiWinMsg::OnDraw(HDC hDC)
#007 {
#008  //顯示一個按鈕。
#009  //設定按鈕背景顏色。
#010  RECT rcText;         
#011  rcText.left = 10;
#012  rcText.top = 10;   
#013  rcText.right = 100;
#014  rcText.bottom = 100;
#015
#016  HBRUSH hbrush = CreateSolidBrush(GetSysColor(COLOR_3DFACE));
#017  //用黑色的畫刷填充四邊形的顏色.
#018  FillRect(hDC,&rcText,hbrush);
#019  DeleteObject(hbrush);
#020  
#021  //
#022  HPEN hLight = CreatePen(PS_SOLID,1,
#023         GetSysColor(COLOR_3DHIGHLIGHT));
#024  HPEN hShdaow = CreatePen(PS_SOLID,1,
#025         GetSysColor(COLOR_3DDKSHADOW));
#026
#027  //
#028  //移到指定位置.
#029  POINT ptLeftTop;
#030  ptLeftTop.x = 20;
#031  ptLeftTop.y = 20;
#032  MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);
#033
#034  //顯示白線。
#035  HGDIOBJ hOldPen = SelectObject(hDC,hLight);
#036  ptLeftTop.x = 20;
#037  ptLeftTop.y = 90;
#038  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#039
#040  ptLeftTop.x = 20;
#041  ptLeftTop.y = 20;
#042  MoveToEx(hDC,ptLeftTop.x,ptLeftTop.y,NULL);
#043  ptLeftTop.x = 90;
#044  ptLeftTop.y = 20;
#045  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#046
#047  //顯示黑色線。
#048  SelectObject(hDC,hShdaow);
#049  ptLeftTop.x = 90;
#050  ptLeftTop.y = 90;
#051  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#052
#053  ptLeftTop.x = 20;
#054  ptLeftTop.y = 90;
#055  LineTo(hDC,ptLeftTop.x,ptLeftTop.y);
#056
#057  //
#058  SelectObject(hDC,hOldPen);
#059  DeleteObject(hLight);
#060  DeleteObject(hShdaow);
#061
#062  int nOldMode = SetBkMode(hDC,TRANSPARENT);
#063  //輸出文字。
#064  std::wstring strShow(_T("按鈕"));
#065  DrawText(hDC,strShow.c_str(),(int)strShow.length(),&rcText,
#066         DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);     
#067
#068  //
#069  SetBkMode(hDC,nOldMode);
#070 }

這是綜合使用前面學習過的API函數來畫一個按鈕,如果有什麼不瞭解的,請看看以前學習過的API函數。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.