15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


TrackPopupMenu() and paritally disabled dialog box

Roland Pasternack -- rpasternack@MSERVER2.Legato.COM
Tuesday, April 23, 1996

VC++ 4.1, NT 3.51

I have a tree control derived class that fills an MDI child window.  By double 
clicking on an item in the tree, I post a WM_COMMAND to this same tree control 
that causes a modal dialog box to be displayed.  This works perfectly.

When right clicking in this tree on an item I display a popup menu via 
TrackPopupMenu().  When a menu command is chosen that displays the same dialog 
box as above, the dialog box comes up, but though the dialog box appears to 
have focus it does not work correctly.  Clicking on the OK or cancel buttons 
with the left buttons does nothing.  It appears that the tree control 
*underneath* the dialog box is still receiving the mouse messages, because when 
I right click on the dialog box, the popup menu for the *tree* appears on top 
of the dialog box.  When I cause the popup menu to go away, the dialog box now 
works ok.

It seems that for some reason the DoModal() is not giving control to the 
dialog box correctly.  I have tried making the frame window the parent of the 
dialog box and of the popup menu, and this seems to have no effect.  My best 
guess is that this has to do with the parent of the popup menu.  Though I 
don't know why it would affect the DoModal().  Has anyone else run into a 
problem like this?  If so, what was the problem and how did you solve it?

Thanks,
Roland




Dicky Singh -- Dicky@landmark.com
Thursday, April 25, 1996

Are you trackpopupmenu-ing up on mouse down or up?
Try on mouse up.  Give it a shot.
-Dicky

----------
From: 	Roland Pasternack[SMTP:rpasternack@MSERVER2.Legato.COM]
Sent: 	Tuesday, April 23, 1996 2:43 p
To: 	mfc-l@netcom.com
Subject: 	TrackPopupMenu() and paritally disabled dialog box

VC++ 4.1, NT 3.51

I have a tree control derived class that fills an MDI child window.  By double 
clicking on an item in the tree, I post a WM_COMMAND to this same tree control 
that causes a modal dialog box to be displayed.  This works perfectly.

When right clicking in this tree on an item I display a popup menu via 
TrackPopupMenu().  When a menu command is chosen that displays the same dialog 
box as above, the dialog box comes up, but though the dialog box appears to 
have focus it does not work correctly.  Clicking on the OK or cancel buttons 
with the left buttons does nothing.  It appears that the tree control 
*underneath* the dialog box is still receiving the mouse messages, because when 
I right click on the dialog box, the popup menu for the *tree* appears on top 
of the dialog box.  When I cause the popup menu to go away, the dialog box now 
works ok.

It seems that for some reason the DoModal() is not giving control to the 
dialog box correctly.  I have tried making the frame window the parent of the 
dialog box and of the popup menu, and this seems to have no effect.  My best 
guess is that this has to do with the parent of the popup menu.  Though I 
don't know why it would affect the DoModal().  Has anyone else run into a 
problem like this?  If so, what was the problem and how did you solve it?

Thanks,
Roland



-----------------------------
-Dicky
Dicky@Landmark.COM
Dragon Team



ToddAnderson -- andersto@NetHeaven.com
Thursday, April 25, 1996

I had a similar problem a while back, I sent a WM_CANCELMODE Message to the
offending window.  If you can't find the window that still doing the mouse
track you can get the mainfrm window from the App and do a
SendMessageToDescendants.

I think WM_CANCELMODE is what you are looking for.


>VC++ 4.1, NT 3.51
>
>I have a tree control derived class that fills an MDI child window.  By double 
>clicking on an item in the tree, I post a WM_COMMAND to this same tree control 
>that causes a modal dialog box to be displayed.  This works perfectly.
>
>When right clicking in this tree on an item I display a popup menu via 
>TrackPopupMenu().  When a menu command is chosen that displays the same dialog 
>box as above, the dialog box comes up, but though the dialog box appears to 
>have focus it does not work correctly.  Clicking on the OK or cancel buttons 
>with the left buttons does nothing.  It appears that the tree control 
>*underneath* the dialog box is still receiving the mouse messages, because
when 
>I right click on the dialog box, the popup menu for the *tree* appears on top 
>of the dialog box.  When I cause the popup menu to go away, the dialog box now 
>works ok.
>
>It seems that for some reason the DoModal() is not giving control to the 
>dialog box correctly.  I have tried making the frame window the parent of the 
>dialog box and of the popup menu, and this seems to have no effect.  My best 
>guess is that this has to do with the parent of the popup menu.  Though I 
>don't know why it would affect the DoModal().  Has anyone else run into a 
>problem like this?  If so, what was the problem and how did you solve it?
>
>Thanks,
>Roland
>
>





| Вернуться в корень Архива |