Time of Update: 2018-12-07
原代碼下載:CQA0410.exe (234KB) 原文出處:MSDN Magazine October 2004 (C++ Q&A)建立客戶區視窗 列表框之間項的拖拽操作 在發送繪畫(paint)訊息時,系統是如何識別某個視窗的客戶區或非客戶區?當我用 ::CreateWindow 建立視窗時,如何指定客戶區矩形?Vipul Solanki 在建立視窗時不必指定客戶區,當收到 WM_NCCALCSIZE 訊息時才指定客戶區。不管什麼時候,只要 Windows
Time of Update: 2018-12-07
如何建立一個新的圖層?所建立的圖層是永久的還是臨時的?如何獲得已有的圖層對象?如何建立一個圖元,並設定圖元的屬性?並且在圖層中繪製出來?如何建立一個新的圖層?所建立的圖層是永久的還是臨時的?可以使用layers對象的CreateLayer方法CreateLayer方法使您可以建立新的臨時或永久Maplnfo表圖層。所建立的表有一列名,用於標註和資料繫結。當要添加或更新圖元時,Name屬性將會放人圖元名稱列中。函數原形:CreateLayer(Name,[FileSpec],[Position],
Time of Update: 2018-12-07
關於測試驅動開發, C++的庫比較多, 選擇是一個問題. Boost.Test是一個用於C++開發的測試架構, 類似的還有CPPUnit, 個人認為, CPPUnit過多的照搬了JUnit的架構, 有比較濃厚的Java風格, 用起來總感覺有些束縛, 不是那麼native. CXXTest 我用過Symbian版本的, 好像需要Perl, 不過Symbian本身安裝的時候就需要Perl,
Time of Update: 2018-12-07
問題的提出: 實際上所有線程都是用來處理C函數的,而不是C++類成員函數。標準庫中提供一個API函數,這個函數以回呼函數指標作為線程的執行代碼並在單獨的線程中調用回呼函數。問題是在這樣的線程庫中不能建立執行對象成員函數的線程;只能使用普通的函數。因此,下列代碼是失敗的:// 啟動線程庫函數的線程int thr_create (void (*pf)(), void* prm, thread_t* pth);#include "class1.h"int func (void *param ){
Time of Update: 2018-12-07
如果還是按照一般vc程式一樣使用ON_WM_LBUTTONDOWN()宏是不會起作用的。程式永遠執行到不了你的OnLButtonDown(UINT nFlags, CPoint point) 函數內。方法是這樣的:主要是要用到MapX自己定義的一套訊息相關宏以下我們假設試圖類的名字為:CDemoView這裡我們要添加的是一個響應滑鼠移動的訊息處理函數1、首先在DemoView.h檔案的DECLARE_MESSAGE_MAP()下方添加
Time of Update: 2018-12-07
這種按鈕狀態的控制和ToolBar上的按鈕狀態的控制有所不同;假設現在在某一對話方塊上有一id為IDC_BUTTON_DELETEMAP的按鈕資源;並且已經建立了該對話方塊的對話方塊類;現在要實現的效果是:當地圖列表中有某一項被選中時,刪除按鈕有效,否則按鈕無效;介面1所示:圖1此時通過菜單View->ClassWizard開啟MFC Wizard,選中其中的member
Time of Update: 2018-12-07
l 適用性n 類的抽象以及他的實現都應該可以通過產生子類的方法加以擴充。n 如果任何一種擴充都會導致類以幾何級數來增長,這就說明你需要將一個對象分解為兩個部分,這種類層次稱為“嵌套的普化 nested generalizations”;l 一般來講,Implementor只提供一些基本操作,而Abastraction則定義了一些基於這些基本操作的較高層次的操作。l Bridge Pattern的優點:n
Time of Update: 2018-12-07
今天,在用MFC寫一個工具軟體的時候,用到了一個動態建立的組合框,當組合框中的功能表項目比較多的時候,預設的組合框下拉式功能表高度就顯得不夠了,為了能改變預設的下拉式功能表高度到合適的位置,可以作如下操作: CRect rc; NewCombo.GetDroppedControlRect(&rc); NewCombo.GetParent()->ScreenToClient(&rc); rc.bottom += 150
Time of Update: 2018-12-07
自從有了軟體開發以來,消除重複,提高軟體的重用性就一直是我們所追求的一個重要目標,本文將圍繞著這一主題,帶大家重走一遍結構化(SA)、物件導向(OO)與設計模式(Design
Time of Update: 2018-12-07
有A、B兩個頁面,點擊A頁面的某個按鈕之後進入開啟B視窗(B是一個彈出式視窗)在B中做了一些操作之後,要返回A頁面,由於在B頁面中的一些操作,希望在A頁面中顯示出來,所以要重新整理A頁面,那麼一般常規的做法是這樣的:1this.ClientScript.RegisterStartupScript("refresh", "<script>window.close();window.opener.location.reload(false);</script>");採用這樣的
Time of Update: 2018-12-07
Creating a new extenderThe following steps walk you through the process of creating a new ASP.NET AJAX extender from scratch. When you've completed this walkthrough, you'll have written a completely new extender control that you can customize and
Time of Update: 2018-12-07
1、在一個頁面中的基本布局元素為:<div id=container> <div id=header ></div> <div id=content> <div id=slidebar></div> <div id=pagecontent></div> </div> <div
Time of Update: 2018-12-07
假如由於某種原因,不能直接使用select id, name, classid into #tmp1 from ......
Time of Update: 2018-12-07
每一C 程式都必須有一main()函數,可以根據自己的愛好把它放在程式的某個地方。有些程式員把它放在最前面,而另一些程式員把它放在最後面,無論放在哪個地方,以下幾點說明都是適合的。 1. main() 參數 在Turbo C2.0啟動過程中,傳遞main()函數三個參數:argc,argv和env。 * argc: 整數,為傳給main()的命令列參數個數。 * argv: 字串數組。 在DOS 3.X
Time of Update: 2018-12-07
1、我們要明白,div是可以嵌套的,而這樣的嵌套加上布局的float屬性,這樣一來,就有點類似於java裡的布局器了,這是一個很強大的功能,幾乎是無敵的;2、使用選取器是一件很美妙的事情,其實一個頁面元素的外觀表現無非就是以下幾個方面:標題、列表、圖片和串連;有了選取器,你就可以為不同的元素裡的這些基本元素定義不同的樣式;3、在布局的過程中,一般會用到以下幾個屬性:clear,float,position,其中clear用來設定某個對象的左右兩邊是否允許有浮動物件,而float屬性則用來設定某個
Time of Update: 2018-12-07
VARIANT的結構可以參考標頭檔VC98\Include\OAIDL.H中關於結構體tagVARIANT的定義。 對於VARIANT變數的賦值:首先給vt成員賦值,指明資料類型,再對聯合結構中相同資料類型的變數賦值,舉個例子: VARIANT va;int a=2001;va.vt=VT_I4;///指明整型資料va.lVal=a; ///賦值 對於不馬上賦值的VARIANT,最好先用Void VariantInit(VARIANTARG FAR*
Time of Update: 2018-12-07
關於Decorator模式 Decorator模式本身較好理解,從他的別名可見一斑:Wrapper。Decorator用於動態地給對象添加一些額外的職責,注意:此處是給對象,而不是給類,這正式該模式靈活的地方。你可以給一個對象嵌套一個或人一個多個Decorator。下面我們主要要看一下Decorator和Strategy的區別。Decorator模式僅從外部改變組建,因此組件無需對它的裝飾有任何瞭解,也就是說,這些裝飾對組件來說是透明的,組件對裝飾一無所知,1所示。 圖1
Time of Update: 2018-12-07
下面是MSDN的提示: Remarks It is not recommended that you add and subtract values from the SYSTEMTIME structure to obtain relative times. Instead, you should 1、Convert the SYSTEMTIME structure
Time of Update: 2018-12-07
在對話方塊中加入屬性頁面作者:黃晨量下載本文全部原始碼當一個基於對話方塊的程式中有相當多的控制項時,你一定會想到使用屬性頁面來將這些控制項分類放置。本文針對這種方法來討論幾種可能實現的方案。 方案一本方案的例子請見原始碼打包檔案中的Property1部分在對話方塊上放置一個Tab Control的控制項,再在對話方塊上放置所需的控制項(本例放置了2個按鈕,試圖在每個標籤中顯示一個)。然後利用Class Wizard來為Tab Control控制項建立一個控制項變數,該變數是CTabCtrl類的,
Time of Update: 2018-12-07
1 Attribute names must be in lower case屬性名稱必須為小寫 2 Attribute values must be quoted屬性值使用雙引號 3 Attribute minimization is forbidden屬性簡寫是不允許的 4 The id attribute replaces the name attribute 用id屬性來替代name屬性 在HTML中,name屬性可以用來標識identify <a>,