|
Thanks a lot.
Now i understand the purpose of using #ifndef in header file
VIBIN
"Fool's run away,where angle's fear to tread"
|
|
|
|
|
Hi all,
I am making simple screen capture win32 application using VC++.NET. I am able to capture it in the memory and getting handle of that bitmap but I am not able to show that bitmap in Picture Control in dialog box. Can I know what wrong with my code??
I am pasting my code here.
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
HWND hDesktopWnd = GetDesktopWindow();
HDC hDesktopDC = GetDC(hDesktopWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
HBITMAP hCaptureBitmap =CreateCompatibleBitmap(hDesktopDC, nScreenWidth, nScreenHeight);
SelectObject(hCaptureDC,hCaptureBitmap);
BitBlt(hCaptureDC,0,0,nScreenWidth,nScreenHeight,hDesktopDC,0,0,SRCCOPY|CAPTUREBLT);
::SendMessage(::GetDlgItem(hDlg, IDC_BITMAP_CONTROL), STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hCaptureBitmap);
ReleaseDC(hDesktopWnd,hDesktopDC);
DeleteDC(hCaptureDC);
DeleteObject(hCaptureBitmap);
Thanks,
Priyank
|
|
|
|
|
Are you sure hCaptureBitmap is valid and How do you createIDC_BITMAP_CONTROL
|
|
|
|
|
It seems very strange logic, but problem in this case is you are deleting bitmap object and you have not deleted compatible device context.
Your code can be modified to,
int nScreenWidth = GetSystemMetrics(SM_CXSCREEN);
int nScreenHeight = GetSystemMetrics(SM_CYSCREEN);
HWND hDesktopWnd = GetDesktopWindow();
HDC hDesktopDC = GetDC(hDesktopWnd);
HDC hCaptureDC = CreateCompatibleDC(hDesktopDC);
HBITMAP hCaptureBitmap =CreateCompatibleBitmap(hDesktopDC, nScreenWidth, nScreenHeight);
SelectObject(hCaptureDC,hCaptureBitmap);
BitBlt(hCaptureDC,0,0,nScreenWidth,nScreenHeight,hDesktopDC,0,0,SRCCOPY|CAPTUREBLT);
::SendMessage(::GetDlgItem(hDlg, IDC_BITMAP_CONTROL), STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hCaptureBitmap);
ReleaseDC(hDesktopWnd,hDesktopDC);
::DeleteDC(hCaptureDC);
::DeleteDC(hDesktopDC);
DeleteObject(hCaptureBitmap);
|
|
|
|
|
Hello all,
I have a CMainFrame window which holds a view. From the view I'm passing HTTRANSPARENT to the CMainFrame so it can handle them, and that way allow for custom dragging and resizing.
I want to make my CMainFrame borderless, and afaik removing the style WS_THICKFRAME from it is the only way to do so. Problem is, when I'm removing that style, whenever I return HTTOP, HTBOTTOM and similar from CMainFrame::OnNcHitTest it would do nothing - no gripping cursors and no ability to resize. Only when that style is set I can allow that custom resizing.
Any idea how can I bypass this, and have a borderless window which still allows for resizing?
Thanks in advance,
Stilgar.
|
|
|
|
|
hi,
I tried to work with your problem. The way is that you have to catch the events
in Pretranslate of the mainframe with the following handle "m_hWndMDIClient" and provide
custom dragging. The hit test must be perfomed by a separate function created by us which
will return the flags returned by OnNcHitTest if needed. I had caught the events only with
this handle only. Try it u will get sucess.
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->hwnd ==m_hWndMDIClient )
{
//Add your code here for the Messages
}
return CMDIFrameWnd::PreTranslateMessage(pMsg);
}
Thank you,
A beginner
A beginner
|
|
|
|
|
Are you suggesting I'd do the whole cursor changing, handle the dragging and resize my app accordingly, all by custom code?
Stilgar.
|
|
|
|
|
i have a slider bar and i have used onreleasedsliderbar event to handle its changes. but it is not fired when Keyboard is used to change the bar. How could i handle changes to Slider bar by Keyboard ?
|
|
|
|
|
What compiler are you using? Is MFC involved?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
it is a visual c++ MFC project in Visual Studio .net 2003 IDE.
|
|
|
|
|
Ok, what message are you responding to?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
just OnNMReleasedCaptureSlider from slider events,
but also OnMouseMove
but not KeyStroke events.
|
|
|
|
|
I want to handle changes to a slider bar which are made by a keyboard!
|
|
|
|
|
Why not use Spy++ to see which of the NM_xxx notification messages are being sent (when the keyboard is used with that control)?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I did use Spy, but there are just Key_Down and Key_Up Events. Would you think there is another way except handle Key_Down or Key_Up events?
|
|
|
|
|
Did a quick search on MSDN, and found the following article:
Trackbar Controls[^]
Scrolling down, it tells you about the notification messages. It behaves just like a scroll bar, and sends WM_HSCROLL, or WM_VSCROLL as appropriate.
You will want to use WM_xSCROLL / TB_ENDTRACK. It is sent when you use both keyboard and mouse.
I hope this puts you on the right path,
Iain.
|
|
|
|
|
How to set display resolution (800*600,1024*...) in runtime?
|
|
|
|
|
Use ChangeDisplaySettings .
Refer this article by maciejr[^]
|
|
|
|
|
DEVMODE ESimSetDM;
EnumDisplaySettings (NULL, ENUM_CURRENT_SETTINGS, &ESimSetDM);
if( (ESimSetDM.dmPelsWidth != 800) || ( ESimSetDM.dmPelsHeight != 600))
{
ESimSetDM.dmPelsWidth = 800;
ESimSetDM.dmPelsHeight = 600;
ChangeDisplaySettings( &ESimSetDM,CDS_UPDATEREGISTRY );
}
this code will always keep the Display settings as 80*600:->
VIBIN
"Fool's run away,where angle's fear to tread"
|
|
|
|
|
Hi
What does the meaning of keyword "const" in the following declaration
CString GetItemText(int nRow, int nCol) const;
pls give a help
Thanks
SYAMLAL
|
|
|
|
|
SyamlalS wrote: CString GetItemText(int nRow, int nCol) const;
This means GetItemText function does not modify any of the member variables of the class to which this function belongs niether does it call any member function that modifies any member variables of the said class.
|
|
|
|
|
Will it cause any kind of errors if I take the return value to a CString variable??
SYAMLAL
|
|
|
|
|
SyamlalS wrote: Will it cause any kind of errors if I take the return value to a CString variable??
No. The const declaration of the function has nothing to do with its return value.
|
|
|
|
|
Nibu babu thomas wrote: This means GetItemText function does not modify any of the member variables of the class to which this function belongs niether does it call any member function that modifies any member variables of the said class.
EXCPETION: mutable data members can be changed by const member functions.
Steve
|
|
|
|
|
SyamlalS wrote: CString GetItemText(int nRow, int nCol) const;
This function does not change state/value of member variables of class, it is function of.
|
|
|
|