2012-11-13 34 views
1

我有一個VB6 MDI應用程序,用戶可以選擇要連接的數據庫(例如「存檔」或「實時」)。當用戶訪問「存檔」數據庫時,我希望能夠很好地顯示這些信息。理想情況下作爲水印在表單上。所有的控件仍然可見並且正常工作。當他們使用打印屏幕時,我需要這個水印。事實上,只有打印屏幕水印的解決方案可以。水印VB MDI表格

此外,我更喜歡我可以在MDI父窗體中實現的解決方案,所以我不必更改所有單個子窗體。

到目前爲止,我試過。

  1. 將水印添加到MDI父級背景,並使MDI子項半透明。不幸的是,它看起來你不能讓MDI子窗體透明 - 整個MDI應用程序(父窗口和子窗口)變得透明。

  2. 使MDI應用程序變得透明,然後在MDI父窗體背後添加一個非子窗體(此窗體根據MDI父窗體移動和調整大小)。這看起來不錯,如果有點暈,但Alt-PrintScreen只捕獲MDI窗口,所以不會捕獲水印效果。 PrintScreen是好的。所以,我可以考慮添加一個鍵盤掛鉤來禁用Alt-Printscreen。

  3. 添加一個鍵盤掛鉤來捕獲PrintScreen按鍵,然後在MDI應用程序上顯示帶水印的透明表單。與2一樣,Alt-PrintScreen僅捕獲MDI表單,並不顯示水印效果。此外,該解決方案僅對打印屏幕輸出進行水印。

  4. 將背景圖像添加到MDI表單。這不會通過其他控件顯示,並且對於具有很多幀的表單,水印並不那麼明顯。

是否有一些整潔的方式在窗體窗口上呈現水印圖形?你可以放置一個透明的圖片框在其他控件,並仍然有這些控件正常工作?

所有建議讚賞。

感謝

+1

這將是非常非常難以實施,因爲你已經發現。如果在檔案上操作(對有毒的綠色),你能否改變窗體的背景顏色? – wqw

+0

我在窗體上使用背景圖像而不是背景顏色嘗試過類似的東西。對於很多形式,它看起來很好。不幸的是,某些形式在其他控件(網格,框架等)中被覆蓋,而鮮明的顏色/圖像僅顯示在邊緣周圍。另外,我們經常將截圖打印成黑白色 - 所以顏色差異並不理想。 – djk

回答

0

此修復的主要原因是爲了防止「歸檔」系統的任何報告或屏幕截圖與「實時」系統混淆。我本來喜歡水印的屏幕,但它似乎太尷尬。改變表單背景的顏色/圖像或爲標題添加內容等有用的建議是很好的,簡單的解決方案。

Howevever,我確實需要確保任何印刷材料或屏幕截圖都清楚標記。

因爲他們使用Word/Excel自動化等,所以水印報告非常簡單 - 所以我可以添加透明文本框等。從「存檔」數據庫打印時。

區分「存檔」/「現場」之間的屏幕截圖有點尷尬。最後,我採取了設置鍵盤掛鉤的方法來捕獲任何打印屏幕按鍵。這隻在「歸檔」系統上激活。在打印屏幕的按鍵事件中,我將剪貼板中的位圖複製到一個圖片框(在一個隱藏的表格上);在其上打印透明水印圖像;然後將圖片箱圖像複製回剪貼板。所以,如果它被粘貼到另一個應用程序,它有水印。似乎運作良好。當然,這將爲所有屏幕截圖加水印,無論它們是否爲應用程序表單 - 但這與用戶無關。

1

我將創建一個新的形式,是除了你正在尋找的水印空話透明。該表單將使用代碼來確保它始終位於頂部,而其他表單不在其前面。 MDI表單將啓動此表單並控制表單是否顯示存檔或活動水印以及表單的位置。

就個人而言,我總是使用應用程序標題或狀態欄來始終顯示此信息。

+0

感謝您的回覆。我看到的問題是,透明表單處於頂層,因此用戶無法與底層表單交互。我嘗試了這種透明表單,當用戶點擊「printscreen」(上面的選項3)時纔出現這種變體。 – djk