1. 程式人生 > >MFC----視窗的縮放及控制元件隨拖動改變大小

MFC----視窗的縮放及控制元件隨拖動改變大小

當我們想得到一個視窗物件(CWnd的派生物件)指標的控制代碼(HWND)時,最安全的方法是使用GetSafeHwnd()函式,通過下面的例子來看其理由:
  CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
  HWND hwnd = pwnd->m_hwnd; //得到它的HWND
  這樣的程式碼當開始得到的pwnd為空的時候就會出現一個“General protection error”,並關閉應用程式,因為一般不能對一個NULL指標訪問其成員,如果用下面的程式碼:
  CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
  HWND hwnd = pwnd->GetSafeHwnd(); //得到它的HWND
  就不會出現問題,因為儘管當pwnd是NULL時,GetSafeHwnd仍然可以用,只是返回NULL,通過GetSafeHwnd()的實現程式碼就更清楚了。

相關推薦

MFC----視窗控制元件改變大小

當我們想得到一個視窗物件(CWnd的派生物件)指標的控制代碼(HWND)時,最安全的方法是使用GetSafeHwnd()函式,通過下面的例子來看其理由:   CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器   HWND hwnd = pwn

問題解決——MFC SDI程式 CFormView中控制元件視窗

從來都是做對話方塊程式,這次想做個SDI的程式,想著用一下帶Robbin介面的office2007風格,就不用使用那些花錢的商業控制元件/UI庫了。 如果你不想看我打的文字,可以直接拷走程式碼,自己宣告上定義再略作修改就可以用了,不需大的修改。 -----------------------

C# WinForm控制元件的實現

轉自:http://blog.csdn.net/joyhen/article/details/8572505 C# WinForm控制元件的拖動和縮放是個很有用的功能。實現起來其實很簡單的,主要是設計控制元件的MouseDown、MouseLeave、MouseMove

MFC修改對話方塊控制元件背景顏色

HBRUSH CMyDlg::OnCtlColor(CDC* pDC,CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr =CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes o

在WPF中的Canvas上實現控制元件

   如題,專案中需要實現使用滑鼠拖動、縮放一個矩形框,WPF中沒有現成的,那就自己造一個輪子:)    造輪子前先看看Windows自帶的畫圖工具中是怎樣做的,如下圖:      在被拖動的矩形框四周有9個小框,可以從不同方向拖動來放大縮小矩形框,另外需要注意的是,還有一

D3.js 使用zoom時節點無法,只能整體移動的問題

func blank on() sta blog function targe light event .on("dragstart", function() { d3.event.sourceEvent.stopPropagation();

C#如何實現控制元件移動

1 //在picturebox滑鼠移動 2 private void picBox_MouseMove(object sender, MouseEventArgs e) 3 { 4 if (MoveFlag) 5 { 6 picBox.Left += Convert.To

c#可以建立任意控制元件

經常進行圖形介面設計的程式設計者肯定知道,控制元件在設計的時候才能隨意拖動,執行的時候就不能拖動了. 你肯定會問:執行時能隨意拖動控制元件嗎?答案是肯定的,我們的專案涉及到了這一點,我已經實現了,實際上很簡單的喲.我就拿出來給你們show一下,哈哈,各位高手不要笑我喲. 我

C# winfrom圖片並且可以滑鼠

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text

Android自定義控制元件-可控制的圓環控制

前幾天收到這麼一個需求,本來以為挺簡單的,沒想到最後發現實現起來還是有點小麻煩的,在這裡小小的總結一下。 先看看下面這張需求的樣圖: 然後在看一下最終實現的效果圖,可能是gif錄製軟體的問題,有一些浮影,忽略就好了= = : 首先要分析一下最核心的

Drag---長按控制元件進行

import android.os.Bundle; import android.app.Activity; import android.graphics.drawable.Drawable; import android.util.Log; import android.view.DragEvent;

MFC控制元件視窗大小變化,多次改變位置

MFC控制元件隨視窗大小變化,多次縮放不影響位置 void CMyCefTestDlg::OnSize(UINT nType, int cx, int cy) { CDialogEx::OnSize(nType, cx, cy); // TODO: 在此處新

MFC 控制元件視窗尺寸變化自動調整位置大小

    在MFC對話方塊程式設計過程中經常會出現這樣一個問題,在給視窗做尺度變換後,原來的控制元件位置和大小並沒有跟著變,導致介面看起來極不協調,如下:        要解決這個問題,可在類結構體中宣

我的YUV播放器MFC小筆記:設定picture控制元件背景為黑色、視窗

影象的顯示主要使用picture控制元件,一般播放器,在初始化時,播放畫面的區域背景都是黑色的,在YUV播放器,也如此。但在網上找了很久的資料才實現該功能,其實說白了,程式碼很簡單,在OnPaint函式中將picture畫為黑色即可。程式碼: //picture控制

VS2010 MFC 控制元件主框體變化而變化

這裡介紹一種控制控制元件隨主框體變化而變化的方法。 方法並不完善,框體只支援最大化和最小化視窗時還好,但是在連續最大化最小化切換10次以上以後,控制元件在主框體中的相對位置會向左上角移動,幅度並不大,基本可以滿足應用需要; 但如果主框體動態的變化大小,控制元件的相對位置變化的非常快,基本不能

VS2010 MFC 控制元件主框體變化而變化,功能完善

轉載:https://www.codeproject.com/Articles/1657/EasySize-Dialog-resizing-in-no-time 之前,通過比例的方法來控制各個控制元件的大小隨主框體變化,這種方法在主框體連續變化多次後,會出現控制元件位置偏移的現象,到最後可能

QT中的UI介面控制元件視窗自適應變化大小

QT5中的UI介面 控制元件隨視窗自適應變化大小 點選UI介面檔案控制元件間的空白區域,然後選擇工具中的柵格佈局(網格佈局),點選後,它會自動調整你的控制元件大小,預設將你的widget的框長

MFC學習之 對話方塊設定背景顏色控制元件透明的方法

對話方塊設定背景色之後控制元件不透明的問題。 1.對話方塊設定背景色: 方法1:(用OnPaint()) 在Dlg.h中:宣告 afx_msg void OnPaint();                                HICON m_hIcon; 在Dl

Qt控制元件視窗大小變化的設定方法(QTDesigner)

1 新建窗體(Dialog、MainWindow或Widget都行); 2 拖一個控制元件到窗體上(任何控制元件都可以:layout、button、或check box); 3 在窗體空白處右鍵→佈局→柵格佈局(G),即可; 4 如果第二步新增的layout控制元件,有時,

QT5中的UI介面 控制元件視窗自適應變化大小 無需寫任何程式碼!

      為完成BOSS交給我的在QT中整合OSG開發環境,做出QT介面,之前一直用UI介面檔案做。如下圖所示。左側是widget框,右邊是2個scrollarea,之前介面預設大小不大,執行後點擊