1. 程式人生 > >設定視窗背景色

設定視窗背景色

若要改變CView,CFrameWnd或CWnd物件的背景顏色需要處理WM_ERASEBKGND訊息

WM_ERASEBKGND


Return Values
An application should return nonzero if it erases the background; otherwise, it should return zero.

true表示已處理背景重新整理

false表示需要在OnPaint裡處理

示例:

BOOL CImgView::OnEraseBkgnd(CDC* pDC)
{
	// TODO: Add your message handler code here and/or call default




	CRect rc;
	pDC->GetClipBox(&rc);  //獲得包含當前可見區域的最小矩形

	CBrush *pOldBrush=pDC->SelectObject(&m_backBrush); //背景畫刷
	//pDC->Rectangle(rc);  //不能使用這個函式,有視窗遮蓋時,會有實線留下
	pDC->PatBlt(rc.left,rc.top,rc.Width(),rc.Height(),PATCOPY); //使用當前刷子繪製給定矩形
	pDC->SelectObject(pOldBrush);
 	return TRUE;  //表示已處理背景重新整理

}


Q:OnEraseBkgnd和CtlColor有什麼區別?

A:   OnEraseBkgnd是在視窗大小發生改變等情況下發生的,它將繪製視窗背景;

      而OnCtlColor是當視窗的控制元件需要繪製時發生的,它將繪製視窗的控制元件。
 

Q:OnEraseBkgnd、OnPaint、OnCtlColor關係


A:
OnEraseBkgnd :在視窗背景需要重繪時呼叫.
OnPaint : 此時OnEraseBkgnd已經呼叫過了,所以在此響應函式體內對背景進行的操作將覆蓋OnEraseBkgnd中所做的操作.
OnCtlColor : 有於在視窗將要被(第一次)繪製時響應,子視窗可以通過發關WM_CTLCOLOR請求父視窗傳來一個HBRUSH.

參考資料:

http://blog.163.com/[email protected]/blog/static/92667383201042711856802/


相關推薦

設定視窗景色

若要改變CView,CFrameWnd或CWnd物件的背景顏色需要處理WM_ERASEBKGND訊息 WM_ERASEBKGND Return Values An application should return nonzero if it erases the ba

設定小程式的狀態列、導航條、標題、視窗景色[Window]。

window用於設定小程式的狀態列、導航條、標題、視窗背景色。屬性型別預設值描述最低版本navigationBarBackgroundColorHexColor#000000導航欄背景顏色,如"#000000"navigationBarTextStyleStringwhite

Android Material適配 為控制元件設定指定景色和點選波紋效果

大部分時候,我們都需要為控制元件設定指定背景色和點選效果 4.x以下可以使用selector,5.0以上需要帶波紋效果,以下是實現該效果的方法。 比如實現Button的Material適配 <Button android:text

Android自定義TextView 自定義設定圓角景色

public class RoundTextView extends TextView {  private int mBgColor = 0;  private int mCornerSize = 18; public RoundTextView(Context cont

CSS設定DIV景色漸變顯示

<style type="text/css"> .linear{ width:100%; height:600px; FILTER: progid:DXImageTransform.Microsoft.Gradient(gradientTy

VS2013 舒服的字型設定景色

使用字型:Fixedsys Excelsior 3.01 2、安裝字型:控制面板 -> 字型,複製下載的檔案進去。 3、開啟VS2010,工具 -> 選項 -> 環境 -> 字型和顏色,選擇Fixedsys字型,選擇字型大小為12 4、設定背景色:色調=123,飽和度=19

【Qt】Qt之設定QWidget景色【轉】

簡述 QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。 Qt中視窗背景的設定,下面介紹三種方法。 使用QPalette 使用Style Sheet 繪圖事件 一般我不用QSS設定視窗背景,也不建議使用。(這裡是對於視窗而,如果是子部件當

Android TextView 設定文字景色或文字顏色

String str="這是設定TextView部分文字背景顏色和前景顏色的demo!"; int bstart=str.indexOf("背景"); int bend=bstart+"背景".length(); int fstart=str.indexOf("前景")

設定Eclipse配色方案--設定不同景色,有效護眼

經常用電腦的童鞋們長時間的看螢幕會導致眼睛發澀發酸,而且長時間看一種色調的背景會讓感覺太單調了,這樣也不利於保護眼睛。 現在我說一下自己的一些經驗,希望可以幫助那些曾經像我一樣“”求而不得“”的朋友。一般來說有三種方法: 一、大家常用的一種方法設定Eclipse的屬性:Wi

設定漸變景色用GradientDrawable

            //設定從上到下的漸變色,上方是紅色,下發時黃色             GradientDrawable gradientDrawable = new GradientDrawable(Orientation.TOP_BOTTOM,new int[

android設定Activity景色為透明的2種方法

android設定背景色為透明 方法一: 只要在配置檔案內activity屬性配置內加上 android:theme="@android:style/Theme.Translucent"  就好了。 這樣就呼叫了android的透明樣式! 方法二: 先在res/values

Qt 之設定 QWidget 景色

簡述 QWidget是所有使用者介面物件的基類,這意味著可以用同樣的方法為其它子類控制元件改變背景顏色。 Qt中視窗背景的設定,下面介紹三種方法。 使用QPalette 使用Style Sheet 繪圖事件 一般我不用QSS設定視窗背景,也不建議使

Toolbar 設定 menu 景色、字型顏色以及彈出選單不懸浮

Toolbar 設定 menu 背景色及字型顏色 step1 定義xml <style name="ToolbarPopupTheme" parent="@style/ThemeOverl

QlsitWidget列表設定交替景色

所有繼承自QAbstractItemView的QT類都可以通過setAlternatingRowColors(boolenable)設定列表項顏色交替變化。 通過給stylesheet設定alternate-background-color: rgb(27, 27, 27)

JTable設定表頭景色

今天發現一個新問題:當設定表頭的背景色的時候,顏色沒有完全填充到表頭當中,如下圖所示: 程式碼: table.getTableHeader().setBackground(new Color(51, 102, 255)); 該程式碼的效果如上所示。

JFrame當中所設定景色無法顯示

一下是我的一個Jframe窗體程式: import java.awt.*; import javax.swing.*; import java.awt.color.*; import javax.swing.JFrame; public class JFrameDemo01

eclipse設定護眼豆沙綠景色以及windows系統視窗顏色

顏色程式碼:red:204;green:232;blue:207 如果設定了系統視窗豆沙色,eclipse就不需要再設定了,因為eclipse預設跟隨系統   1 設定變數顏色   2 設定綠豆沙背景色     3

功能列表設定 字段的 景色 圖標 字體顏色——JEPLUS快速開發平臺

字體顏色 背景顏色 JEPLUS功能列表設定 字段的 背景色 圖標 字體顏色 在我們使用JEPLUS進行列表配置時,想對一些特殊的字段進行樣式的渲染,今天我介紹下如何用JEPLUS列表配置出來我們想要的顏色。一、效果展示二、準備工作1、JEPLUS平臺5.0.0.22、

PyCharm中設定選中文字的高亮景色

PyCharm中,當滑鼠點選某個變數,單詞後,該變數的在其它地方自動加上高亮背景色,但由於我之前選擇的主題不是預設主題,此處的高亮不是很明顯: 現在希望設定為,黃色之類的高亮的背景色。 pycharm selection background color PyCharm 2016.

Python視覺化中Matplotlib(3.線條的詳細樣式及線性、儲存圖片、plot的詳細風格和樣式)、景色、點和線的詳細設定

1.修改線條的樣式: linestyle、color、marker(標記) ''' 顏色 color:修改顏色,可以簡寫成c 樣式 linestyle='--' 修改線條的樣式 可以簡寫成 ls 標註 marker : 標註 線寬 linewidth: 設