設定視窗背景色
若要改變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: 設