21二月/080
System.IO.FileInfo小測試
dim f as new fileinfo("D:\123.xls")
FullName屬性傳回 D:\123.xls (完整路徑)
Name屬性傳回 123.xls (檔案名稱含副檔名)
Extension屬性傳回 .xls (注意前面有加「.」)
18十二月/070
如何用ifstream讀入unsigned char?
可直接使用強制轉型解決,簡單範例如下
unsigned char ut[256];
ifstream if;
if.open("檔案所在位置");
if.read(reinterpret_cast<char*>(ut),256);
15十二月/070
從vb.net到c++(mfc) 筆記
習慣了vb.net的物件導向、直覺介面設計
造成現在轉用mfc非常的不順利
可以說是「由儉入奢易,由奢入儉難」的最好例證XD
以下是c++(mfc)的一些不同
- 檔案要拆成 Header、Source、Resource三個
- 支援物件導向,但屬性的符號換成「::」(好像不太對,後面有看到真正的類別,都可以用「.」)
- 由import變成#include + using(有點類似,但有差異)
- 函數的前後順序很重要,後面可以call前面,前面不能call後面(不然就需先在header file加入函數定義,就可以忽略順序問題)
- 慣用的所有.net組件都不能用 Orz
- 有一些標準程式庫可以include,但是function名稱都是奇怪的簡寫,非常的不易讀(像讀檔居然是「fread」...囧(不一定要用這個,有可以直接使用的ifstream系列物件)
- MFC不是很標準的物件導向,只有form(或說是dialog)自己本身是個class,其內部的物件(button、label等等),好像無法直接用「物件名.屬性」去存取,只能用form本身的funciton去控制(這還不是很確定)
20六月/070
DataGridView的AutoSizeMode
問題:
使用AllCells時,會巡覽「所有的」Cell,做Fit Size
所以當欄位很多,資料量又大時,Loading會非常非常重
(尤其是如果有很多Text(ntext)型別的欄位,吃得更重)
解決方式:
改用DisplayedCells,只會巡覽「目前有顯示」的Cell,相對起來速度較快
或是乾脆不用AutoSize(這當然是最快的)
12六月/070
Radio Button研究
當兩個以上的Radio Button,裝在同一個容器(container)中,只有一個Radio Button會在Checked狀態
測試案例:
- 一個FlowLayoutPanel裡面裝著兩個RadioButton
- button1的index較前面,所以一開始預設就會引發CheckedChanged事件,並且為Checked=true
- 利用程式碼先後設定RadioButton為Checked = true
- 設定button1時,因為已經是True所以不變,也沒有引發事件
- 設定button2時
- 先引發button1的CheckedChanged事件,Checked設為False
- 在引發button2的CheckedChanged事件,Checked設為True