雜:
1.自定義控制項public屬性如何不在initializecomponent中生成?
可以使用特性:
[designerserializationvisibility(designerserializationvisibility.hidden)]
2.在一些無法在窗體內捕獲的事件可以使用imessagefilter介面來實現。
3.form.activeform靜態屬性用來獲取當前啟用的視窗。可以用來判斷程式時候是啟用狀態的。
4. control.pointtoscreen用來獲取在螢幕中的座標。
control.pointtoclient用來獲取在控制項中的座標。
control.mouseposition用來獲取滑鼠在螢幕上的座標。
上面3個組合可以用來做一些複雜的控制項互動。
5. controls.getchildindex,controls.setchildindex可以用來改變控制項布局。
6. 該函式返回與指定視窗有特定關係(如z序或所有者)的視窗控制代碼。
[dllimport("user32.dll")]
public static extern intptrgetwindow(intptr hwnd, uint wcmd);
可以實現一些窗體上的互動。
7.xml序列化反序列化物件:
public
static
string
serializexml
<
t>
(t obj)
} public
static
t deserializexml
<
t>
(string
xmlobj)
}繪圖相關:
1. control. region屬性用來限定控制項的形狀。可以用來繪製異型控制項。
2. 控制項內部操作解決閃爍問題
protected override void onpaintbackground(painteventargse)
protected override voidonpaint(painteventargs e)
this.doublebuffered = true;
if(this.backgroundimage != null)
e.graphics.smoothingmode=system.drawing.drawing2d.smoothingmode.highquality;
e.graphics.drawimage(this.backgroundimage,
new system.drawing.rectangle(0, 0, this.width, this.height),
0, 0, this.backgroundimage.width,
this.backgroundimage.height,
system.drawing.graphicsunit.pixel);
base.onpaint(e);
c 與c 互動的一些東西
最近做乙個專案,對方公司只提供了乙個c 的dll,但沒封住,c 無法dllimport.所以只能自己寫c 來封住了。對方的dll只接收yuv420的格式,所以在c 裡用opencv來轉換。本來想c 來寫,但總覺得麻煩。c public void do bitmap bp bitmap outimg ...
一些有用的函式
1.memset pbuffer,0,pbuffer length 初始化一段記憶體空間,初始值為0 2.sprintf pbuffer,fomatstring,作用和printf差不多,不同的是輸出到指定的快取pbuffer中,而不是輸出到dos控制台。3.sscanf pbuffer,fomat...
一些有用的轉換
relation with conversion 1.wchar tchar widechartomultibyte wcstombs cstring atl macros ole2a w2t w2ct lstrcpy note include swprintf wchar,l ls char wc...