FotoVision學習手記 2

2021-09-22 10:56:50 字數 1690 閱讀 4577

預設情況下,vs.net提供的控制項即使在winxp下執行,也不能獲得xp風格的介面,因此,fotovision裡加入了乙個manifest檔案。這是乙個xml檔案,這個檔案明確指定了窗體控制項使用的是版本為6.0的comctl32.dll。這個dll檔案中包含了一些新的控制項以及一些控制項的新特性,它最大的好處是支援控制項外觀的改變。

一般將manifest檔案放在可執行檔案目錄下,命名方法為:《可執行檔名》.exe.manifest,因此我們可以在bin目錄下看到fotovision.exe.manifest。專案中就是通過manifest檔案下的thememanifest.xml和thememanifest.cs檔案實現的。前者就是能夠讓應用程式具有xp效果的manifest檔案,後者是乙個工具類,用於提取thememanifest.xml的內容,並寫入到可執行檔案所在的目錄下。因此,當程式第一次執行時,會在同一目錄下生成fotovision.exe.manifest。

thememanifest.xml

<?xml version="1.0" encoding="utf-8" standalone="yes"?>

version="1.0.0.0"

processorarchitecture="x86"

name="photovision"

type="win32"

/>

.net control deployment tool

type="win32"

name="microsoft.windows.common-controls"

version="6.0.0.0"

processorarchitecture="x86"

publickeytoken="6595b64144ccf1df"

language="*"

/>

對這個檔案來說,在不同的應用程式中,只需要修改assemblyidentity中的name的屬性,其他都是一樣的,因此可以直接複製過去使用。

thememanifest.cs

這是乙個工具類,用於提取thememanifest.xml的內容,並寫入到可執行檔案所在的目錄下,並且這也解決了當可執行檔案拷貝到其他目錄下執行時無法具有xp外觀的問題。

///

/// thememanifest 的摘要說明。

///

public  sealed class thememanifest

private thememanifest()

public static bool create()

catch(system.exception ex)

} }

並且在mainform 中修改main()函式如下:

///

/// 應用程式的主入口點。

///

[stathread]

static void main() 

else    

run();//manifest檔案已經存在,直接執行

mutex.releasemutex();//釋放 mutex 一次。 }

else

} static void run()

} 下圖就是使用了xp風格的fotovision系統執行後的情形:

FotoVision學習手記 3

aboutform十分簡單,重寫了繼承自system.windows.forms.form的onload方法,而不採用aboutform load來響應窗體的load事件。using system using system.drawing using system.collections using...

JavaScript學習手記2

1.物件 在js裡所有的事物都是物件 字串 數值 陣列 函式 允許自定義物件 物件包含屬性和方法。2.自定義物件 定義並建立物件例項,使用函式來定義,然後建立新的物件例項 3.string物件 用於處理字串 可以使用單引號也可以是雙引號 indexof 在字串中查詢字串,返回開始位置 match 內...

Delphi學習手記

本人一直使用c buider,並開發了乙個 商關係管理 的三層應用系統.現公司要求使用delphi,沒辦法只有重新學習pascal語言.便記錄學習的過程,那就叫delphi學習手記吧.1 好象inherit form不行,如果想覆蓋上邊的方法,重寫事件或函式,竟然報錯,不懂先,是不是inherit不...