|
I have now tried doing my own double buffering but the flicker is still there!
In WM_PAINT I do this (it's suppose to be double buffering ):
memdc = ::CreateCompatibleDC(clientDC);
hBitmap = CreateCompatibleBitmap(clientDC, 200,200);
::SelectObject(memdc, hBitmap);
SetBkColor(memdc, RGB(0,0,0));
BitBlt(clientDC, 0,0,200,200,memdc,0,0,SRCCOPY);
ReleaseDC(g_hWnd, clientDC);
So... which step have I missed? Or what step have I missunderstod!
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
hm.. I have figured it out now!
and I see now that I posted an incomplete code snippet of the code I had problem with too.....
Rickard Andersson@Suza Computing
C# and C++ programmer from SWEDEN!
UIN: 50302279
E-Mail: nikado@pc.nu
Speciality: I love C#, ASP.NET and C++!
|
|
|
|
|
I setup a low level keyboard hook using SetWindowsHookEx(), and the hook proc. Everything works fine, but I dont know how to figure out what key was pressed.
Microsoft docs :
LRESULT CALLBACK LowLevelKeyboardProc(
int nCode, // hook code
WPARAM wParam, // message identifier
LPARAM lParam // message data
);
docs say this about lParam
lParam
[in] Pointer to a KBDLLHOOKSTRUCT structure.
here is the doc for kbdllhoststruct:
typedef struct tagKBDLLHOOKSTRUCT {
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
ULONG_PTR dwExtraInfo;
} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
HELP!! how do i get the vkCode??? (In the regular keyboard hook the code is stored in wParam, but now its buried)
|
|
|
|
|
you will get the Virtual Keycode frm the struct...
as u mentioned here..then wut is the problem..specify your problem clear.....
Renjith-CPian.
|
|
|
|
|
The answer to your question is in your question!!!
lParam ... is a ... Pointer to a KBDLLHOOKSTRUCT structure.
so try this:-
KBDLLHOOKSTRUCT * pKbHk;
DWORD dwVkCode;
pKbHk = (KBDLLHOOKSTRUCT *) lParam;
dwVkCode = pKbHk->vkCode;
STL is a religeon. Enquiries to Reverend Christian Graus
|
|
|
|
|
I'm having trouble getting my listbox to scroll automatically as new items are added to it. I've tried using the ScrollWindow method, but it doesn't seem to change anything. What I have now is the following:
void MyClass::updateNews( const char *news ) {
int max;
m_news.AddString( news );
max = m_news.GetScrollLimit( SB_VERT );
m_news.SetScrollPos( SB_VERT, max );
}
But it doesn't work quite right. It scroll most of the way down, but there are still a few lines still unshown.
Any help would be appreciated.
|
|
|
|
|
Did you try CListBox::SetTopIndex?
Tomasz Sowinski -- http://www.shooltz.com
What is "scratch" and why can everything be made from it?
|
|
|
|
|
|
Anybody know of some shareware/freeware to count the lines of code in a VC++ project?
Thanks
Aaron
|
|
|
|
|
I use the one located here:
http://www.codeguru.com/devstudio_macros/LineCount.shtml
Chris Richardson
|
|
|
|
|
Thanks!
I'll give it a shot.
|
|
|
|
|
Hi.
I would like to know is it possible and how to create a submenu. For example, in CEditView, when the user right-click (depends on mouse orientation) Windows draws a submenu with options such as Copy, Paste, etc. I would like to know is there a way to create something like that for *anything* including any view or object using MFC and/or Win32 API.
Thanks,
Kuphryn
|
|
|
|
|
Simply handle this code in your right mouseclick handler:
POINT point;
GetCursorPos(&point);
CMenu menu;
CMenu *submenu;
menu.LoadMenu(IDR_POPUP);
submenu = menu.GetSubMenu(0);
submenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON,point.x,point.y,GetActiveWindow(),NULL);
regards
modified 12-Sep-18 21:01pm.
|
|
|
|
|
Thanks.
I have two questions.
First, how do you create the submenu? Do you create one in resource editor?
Second, how do you know what option the user selects?
Thanks,
Kuphryn
|
|
|
|
|
First,You can create one in resource editor,then you add handler to each option by Class Wizard.
Second,you can create the submenu dynamicly like below:
CMenu popMenu;
popMenu.AppendMenu(MF_STRING,ID,string);
CPoint pt;
::GetCursorPos(&pt);
popMenu.TrackPopupMenu(.......);
If you do it by first point above,Class Wizard will know
what option the user selects,and call the related handler.
Or you can just do like below:
int id=popMenu.TrackPopupMenu(......);
//id is the ID of the menu option selected
if(id==...)
{
//do you want to do
}
if(id==....)
{
//do you want to do;)
}
|
|
|
|
|
Okay. Thanks.
I have not implemented a submenu (context menu). I do admit the process sounds quite simple.
One thing I am not sure on is if you create a new menu, say, "Edit Tools" in resource editor, it will show up in the main menu too.
Kuphryn
|
|
|
|
|
I'm rephrasing a previous unanswered Q. How can I directly connect a dialog box to variables declared in a CDocument inherited class? Here's a simplified example:
A CMyDocument class is declared in Document.h and has a CString variable (say, m_text). I also have a CMyDialog class declared in a View.h that accepts a string as input from an edit box. When I enter a string, it updates m_text, which is then stored to disk and used throughout the application's classes.
Is there a way to direct the DDX to the CMyDocument class? Or is there even a simpler way? Someone must have done this many times, since it seems to be such a commonplace situation. Thx,
Ralf.
ralf.riedel@usm.edu
|
|
|
|
|
RalfPeter wrote:
Is there a way to direct the DDX to the CMyDocument class?
Yes, you could use DDX_Text without ClassWizard and read/store string directly into document's data member. You could also skip DDX_Text and use [Get|Set]DlgItemText to access edit control directly in CYourDlg.
However, I'd advise against this approach. Treat your dialog as simple device for user interaction. Dialog shouldn't care about document at all. Just invoke a dialog in some CYourDoc method and update m_text when DoModal returns IDOK.
Tomasz Sowinski -- http://www.shooltz.com
What is "scratch" and why can everything be made from it?
|
|
|
|
|
Hello Everybody:
I was wondering if anyone can tell me how to disable existing control inside a Dialgo box. Ok this is what I want to do. I have a check box control and under that check box I have 2 combo boxes and 2 buttons. What I want to do is if I check the check box, the controls under the check box become enabled. And when I uncheck the check box, the controls under the check box become disabled. Any suggestions are more than welcome.
Best regards,
Luis E. Cuadrado
)
|
|
|
|
|
Handle BN_CLICK for checkbox. In the event handler, use EnableWindow to switch other controls on/off.
Tomasz Sowinski -- http://www.shooltz.com
What is "scratch" and why can everything be made from it?
|
|
|
|
|
Hi:
Sorry for my ignorance, but does EnableWindow works with controls as well?
thanks,
Luis E. Cuadrado
)
|
|
|
|
|
Luis E. Cuadrado wrote:
does EnableWindow works with controls as well?
Controls *are* windows. EnableWindow will work.
Tomasz Sowinski -- http://www.shooltz.com
What is "scratch" and why can everything be made from it?
|
|
|
|
|
Create Control Variables Using the ClassWizard and Call
Your_Control_Variable.EnableWindow(FALSE) ;
To Disable the Control
and
Your_Control_Variable.EnableWindow(TRUE) ;
to enable the Window
and using Classwizard make a event Handler Corresponding to BN_CLICKED message of u check box
and ur checkbox_control_variable.GetCheck() fuction to determine the check state..id it is true box checked else unchecked..handle the situation as u like...
Renjith-CPian.
|
|
|
|
|
Oh, I see. I'm giving it a try. I'll let you know the results. Thank you for your replies.
later,
|
|
|
|
|
Well, I just did what you guys recommended me and it works. Thank you very much Tomasz Sowinski and Renjith - CPian for all you help. Have a wonderful day.
Best regards,
Luis E. Cuadrado
)
|
|
|
|