Ik ben bezig in het boek 'Teach yourself Visual C++ 6.0 in 21 days'.
Hier staat de volgende code in voor een popup menu:
Wanneer ik nu rechterklik, krijg ik een popup BUITEN het programmascherm, ver van de cursor vandaan.
Laat ik de ClientToScreen functie weg (dus dat de point-coordinaten ongewijzigd blijven) dan is ie wel goed.
Volgens het boek is deze functie nodig om te weten dat de popup op de goede plek terecht komt, maar het lijkt averechts te werken..
Het boek zal het vast niet fout hebben, maar waar doe ik het dan fout?
Hier staat de volgende code in voor een popup menu:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| void CMenusDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
// Declare local variables
CMenu *m_lMenu; // A pointer to the menu
CPoint m_pPoint; // A copy of the mouse position
// Copy the mouse position to a local variable
m_pPoint = point;
// Convert the position to a screen position
ClientToScreen(&m_pPoint);
// Get a point to the window menu
m_lMenu = GetMenu();
// Get a point to the first submenu
m_lMenu = m_lMenu->GetSubMenu(0);
// Show the Popup Menu
m_lMenu->TrackPopupMenu(TPM_LEFTALIGN + TPM_LEFTBUTTON,
m_pPoint.x, m_pPoint.y, this, NULL);
} |
Wanneer ik nu rechterklik, krijg ik een popup BUITEN het programmascherm, ver van de cursor vandaan.
Laat ik de ClientToScreen functie weg (dus dat de point-coordinaten ongewijzigd blijven) dan is ie wel goed.
Volgens het boek is deze functie nodig om te weten dat de popup op de goede plek terecht komt, maar het lijkt averechts te werken..
Het boek zal het vast niet fout hebben, maar waar doe ik het dan fout?
Naar de bioscoop? => gebruik de app op Byoscoop.nl