在SystemEvents類(lèi)中 可以 用戶(hù)試圖注銷(xiāo)或關(guān)閉系統(tǒng)時(shí)發(fā)生。 (當(dāng)用戶(hù)試圖注銷(xiāo)或關(guān)閉系統(tǒng)時(shí)發(fā)生。當(dāng)用戶(hù)試圖注銷(xiāo)或關(guān)閉系統(tǒng)時(shí)發(fā)生。) 這個(gè) 事件處理函數(shù)中 可以找到如下方法
在仙桃等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站制作,仙桃網(wǎng)站建設(shè)費(fèi)用合理。
Private Shared WM_QUERYENDSESSION As Integer = H11
Private Shared systemShutdown As Boolean = False
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
If m.Msg = WM_QUERYENDSESSION Then
'MessageBox.Show("queryendsession: this is a logoff, shutdown, or reboot")
systemShutdown = True
End If
' If this is WM_QUERYENDSESSION, the closing event should be raised in the base WndProc.
MyBase.WndProc(m)
End Sub 'WndProc
Private Sub Form1_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
If (systemShutdown) Then
' Reset the variable because the user might cancel the shutdown.
systemShutdown = False
If (System.Windows.Forms.DialogResult.Yes = _
MessageBox.Show("My application", "Do you want to save your work before logging off?", MessageBoxButtons.YesNo)) Then
e.Cancel = True
Else
e.Cancel = False
End If
End If
End Sub
一個(gè)時(shí)刻只有一個(gè)窗體能獲得焦點(diǎn)。關(guān)鍵是窗體收到
WM_KILLFOCUS
消息時(shí)的重繪。如果你只是想讓窗體看起來(lái)并沒(méi)有什么不同,就這樣吧。我用
VB6,所以寫(xiě)的都是
API,VB.NET
的庫(kù)不是很熟,所以……將就一下吧。
調(diào)用
SetWindowLong,使窗體的消息處理鏈接到新的窗口函數(shù)
NewWndProc,然后在
NewWndProc
里檢測(cè)到
WM_KILLFOCUS
時(shí)就將其移出消息隊(duì)列即可。完畢之后調(diào)用原來(lái)的窗口函數(shù)。
可以的
WM_DEVICECHANGE消息和與之對(duì)應(yīng)的
afx_msg BOOL OnDeviceChange( UINT nEventType, DWORD dwData ) 函數(shù),這個(gè)函數(shù)在CWnd基類(lèi)中有定義,但在ClassWizard中沒(méi)有羅列出來(lái)。解決辦法是:
1.在類(lèi)聲明處添加成員函數(shù)
protected:
afx_msg BOOL OnDeviceChange( UINT nEventType, DWORD dwData );
2.在相應(yīng)的cpp文件中加入BOOL OnDeviceChange(UINT, DWORD)的函數(shù)體;
BOOL CXXXXX::OnDeviceChange( UINT nEventType, DWORD dwData )
{
if(nEventType == DBT_DEVICEARRIVAL)
MessageBox("CD arrival","Note",MB_OK+MB_ICONINFORMATION);
return TRUE;
}
3.在消息映射宏中加入
BEGIN_MESSAGE_MAP(CXXXXXX, CDialog)
//{{AFX_MSG_MAP(CTest031Dlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_WM_DEVICECHANGE() //注意:一定要將這句加在兩個(gè)AFX_MSG_MAP外
END_MESSAGE_MAP()
兩個(gè)方法
1.
要接收的窗口先使用FindWindow這個(gè)api獲得句柄
調(diào)用SetForegroundWindow使其獲得焦點(diǎn)并選中
調(diào)用.net方法:SendKeys.Send方法發(fā)送
2.使用API的SendInput
網(wǎng)頁(yè)標(biāo)題:vb.net消息處理,vb數(shù)據(jù)處理
網(wǎng)站鏈接:http://jinyejixie.com/article10/hsipdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、用戶(hù)體驗(yàn)、網(wǎng)站改版、企業(yè)建站、電子商務(wù)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)