Visual C++開發視窗程式設計過程的疑問。

先聲明一下我程式的學習路程:Visual C++基本語法 → MFC視窗簡易開發(有寫沒很懂)
→ Windows API簡易實作(讀到一半)

Visual C# 視窗程式設計。(簡單設計,發現比MFC簡易的多)

簡單來說稱不上是老手,但比新手要懂一些。
使用Visual Studio 2012版本,最近在做視窗程式設計有幾個重大疑問;

我知道在Visual C++裡有三大類庫:分別是MFC、ATL、CLR以及最底層的Windows API。

撰寫的心得就是利用MFC提供的類別編寫視窗程式相較於C#較為麻煩,完全是以程式面操作為導向,後來發現MFC對於設計視窗美化方面並沒有比C#好用,後來開始考慮是否要用C++/CLI開始設計視窗程式,但這其中有遇到比較糾結的問題,懇請各位程式高手大大幫忙回答。(能的話希望能用VC++設計,盡量不要用C#)


問題:如堅持使用MFC設計視窗程式,要如何自行設計像.Net提供的UI控制項?(像Button、ListBox等具有使用介面操作及外觀、方法及屬性等)

是否是在VS2012開啟「ATL空專案」開發COM或ActiveX這類「控制項」?而這控制項是否就是能設計上述中我想要得控制項目?(對ActiveX的實際功用不甚了解,這類的資訊及書籍又相當少)

如牽涉到「控制項」,那「表單」重塑設計要如何完成?
而自行設計的控制項及表單使用者外觀也是否利用GDI、GDI+等繪圖功能來手動完成?

根據我對MFC及ATL還有WTL的想法是,這三者應是要互相搭配支援的對象。而CLR有.Net 提供支援。(如有錯懇請指證)


最近也開始思考轉攻C++/CLI的可能性,但我發現C++/CLI好像沒有像C#有WPF設計?
且在使用VS2010時有發現.Net Framework 控制項程式庫,這應該是自行開發CLR控制項的方案吧?
但在VS2012時發現這方案已經被移走了,是跟Windows Form一樣被移到要透過新增項目來點選「CLR使用者控制項嗎」嗎?

再者如何關於利用C++/CLI自行設計控制項?去看MSDN文件時,幾乎沒有操作範例可學。

以上含問號的問題麻煩請不吝嗇幫忙解答,非常感謝。

2013-02-23 23:04 發佈
以上問題都很難用三言兩語說清楚..(大概可以寫一本書了)

看你在"自行設計控制項"這個議題上打轉
如果只是想像.NET的Windows Form用拖拉元件來開發
而不是工作考量的話..
建議還是用C#會直接/速成一點~

素食主義 wrote:
以上問題都很難用三言...(恕刪)


如果要用.Net開發,或許我會使用C++/CLI去設計,我想一樣是建立在.Net的情況下,跟C#提供的支援或許不會差很多。會不選擇C#的原因是因為想多加磨練利用C++開發的功力。(雖然C++/CLI也不算標準C++了...)

而等到C++磨練的差不多,再利用C#開發設計會更加容易,對於兩者的差異也會更了解許多。(這是我的想法)

但如有提供C#自行開發設計控制項的書籍希望各位大大不吝嗇提供!
或許C#的開發操作方式跟C++/CLI應該會很雷同吧...!?


ProgramingIdiot wrote:
如堅持使用MFC設計視窗程式,要如何自行設計像.Net提供的UI控制項?...(恕刪)

MFC有基本的控制項,
如果要自行設計,必需繼承該元件,額外增加功能。
可以參考別人寫的元件,
http://www.codeproject.com
原本有很多code,
但是改版後就很難找到。

ProgramingIdiot wrote:
是否是在VS2012開啟「ATL空專案」開發COM或ActiveX這類「控制項」?


COM或ActiveX也是可以設計控制項,
主要是給其他語言使用,如VB/VB.net/Delphi/C#等。
如果只是給MFC程式使用,並不需要使用這類。

ProgramingIdiot wrote:
而自行設計的控制項及表單使用者外觀也是否利用GDI、GDI+等繪圖功能來手動完成?

一般而言,會重載OnPaint或是OnDraw事件,使用GDI/GDI+自行繪圖。

ProgramingIdiot wrote:
最近也開始思考轉攻C++/CLI的可能性,但我發現C++/CLI好像沒有像C#有WPF設計?


C++/CLI不熟,跟原生的C++有點差距,業界少用。

內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?