|
hi,
i need the solution for disabling audio port, so that
if any audio format is playing i can stop it.
if anyone have idea , discuss with me.
thanks in advance.
regards
Halid
|
|
|
|
|
The problem given to me is to build a MFC app , which should have multiple child windows same as in a typical MDI , but all the views should be connected to single instance of Document class,
Something you can give a name Multiple Views Application,
that is one document and multiple views.
I am not suppose to use splitters where in I can create multiple views in CFrameWnd::OnCreateClien().
Does some one has a clue about how to go about >?
Abhishek Narula
"Learn to appreciate others ... World would appreciate you"
|
|
|
|
|
Override CMultiDocTemplate::OpenDocumentFile. This method is called when your app opens file from disk or creates new file. Before calling original implementation, check if any document is open and close it.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
No you didnt get the problem ,
I have to have 4 views opened simultaneously , in a different windows.
but all 4 view are supposed to be connected to same Doc class .
Am I able to explain it now ?
Abhishek Narula
"Learn to appreciate others ... World would appreciate you"
|
|
|
|
|
Abhishek Narula wrote:
No you didnt get the problem ,
I think I got it.
Create MDI app. When user opens/creates new document, you have to do the following:
1) ensure that previously active document is closed.
2) open additional 3 views (or whatever number is needed)
Overriden CMultiDocTemplate::OpenDocumentFile is the perfect place to put this functionality.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
When creating an active document container application, is it possible to display an active document server's menu icons? The default MFC implementation does not do this, so I'm wondering if it would be possible to (re)implement some OLE interface to achieve this. Any hints would be greatly appreciated!
|
|
|
|
|
Hi
I'm creating a window in a specific position and need to write some text in that window area. I've used TextOut() for the same. Window is created, but the Text is not written over there.
Herez the code snippet I'm using.
/*hWnd1 = CreateWindowEx(WS_EX_TOOLWINDOW,"HelpClass",NULL,WS_POPUPWINDOW,466,140,320,94,hWnd,NULL,ghInst, NULL);
hDC=GetDC(hWnd1);
hFont = CreateFont(14,0,0,0,FW_BOLD,0,0,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,PROOF_QUALITY,DEFAULT_PITCH | FF_SWISS,"Century New");
hOldFont=SelectObject(hDC,hFont);
SetTextColor(hDC,BLACK);
TextOut(hDC,0,0,"Title",5);
DeleteObject(SelectObject(hDC,hOldFont));
ReleaseDC(hWnd1,hDC);
Any Help is appreciated.
TIA
Venky
|
|
|
|
|
|
Just a hunch, but you probably need to perform the Textout call in the window's WM_PAINT handler.
"There's a slew of slip 'twixt cup and lip"
|
|
|
|
|
Thanks a lot for the same
With Best Regards
Venky
|
|
|
|
|
How to get the left string of the caret in richeditview, if the caret is visible?
I'm amumu, and you?
|
|
|
|
|
I saw somebody said " draw a new line and delete the old one",
but how to "delete the old one"?
thanks a lot!
i ma realfly
|
|
|
|
|
realfly wrote:
draw a new line and delete the old one
I think he/she meant draw white(background color) on the old one.
Also for painting with GDI+ check this
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
you are right!
may i am too accustomed to "AutoCAD"8)
at last, Thanks a lot!
i ma realfly
|
|
|
|
|
if the erase line is below another graphics, such operator may bring some unconformable result?
how i deal with it?
i ma realfly
|
|
|
|
|
The point is that you have to write codes that paint ALL of
your objects in OnPiant() .
I think you got your answer in Christian's reply,don't you?
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
|
That 's what i done:
Bitmap *m_image; /*for draw line, which will combined with the back ground*/
LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if ( IsWindow() == false )
return 0;
PAINTSTRUCT ps;
// Start a paint session and create a graphics object.
BeginPaint(&ps);
Graphics *g1 = Graphics::FromImage(m_image);
g1->Clear(Color(Color::White));
Pen p(Color(255, 0, 0, 0), 5);
g1->DrawLine(&p, 0,0, LOWORD(lParam), HIWORD(lParam));
EndPaint(&ps);
//combine the line with the background
BeginPaint(&ps);
Graphics g2(GetDC());
ImageAttributes imageAttr;
Status stat = imageAttr.SetColorKey(Color::White,
Color::White,
ColorAdjustTypeDefault);
CRect rect;
GetWindowRect(&rect);
if ( !m_image )
m_image = new Bitmap(rect.Width(), rect.Height());
Rect rc;
RedrawWindow();
g2.DrawImage(m_image,
Rect(0, 0, m_image->GetWidth(),
m_image->GetHeight()),
0, 0, m_image->GetWidth(), m_image->GetHeight(),
UnitPixel, &imageAttr, NULL, NULL);
EndPaint(&ps);
return 0;
}
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
//here i draw a picture as the background
}
it seems that i must redraw all the window when the mouse moving, thus comes with the flicker. can it be avoided?
i ma realfly
|
|
|
|
|
realfly wrote:
it seems that i must redraw all the window when the mouse moving, thus comes with the flicker
One time I wanted do the same things and I couldn't get rid of that flikering.I didn't work enough on this subject to help you,I think it is better to ask Christian Graus about it.
realfly wrote:
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
//here i draw a picture as the background
}
If you want the picture as background of your window,paint it in OnEraseBkgnd() (WM_ERASEBKGND) ,that is better place for it.
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
If you're talking about a selection box, I would draw it direct to the graphics object in the paint method, and therefore it is never a permanent part of the image, just drawn on top of it each time.
Of course, I'd double buffer it and draw it onto the buffer image, but you get the idea.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
|
That 's what i done:
Bitmap *m_image; /*for draw line, which will combined with the background*/
LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if ( IsWindow() == false )
return 0;
PAINTSTRUCT ps;
// Start a paint session and create a graphics object.
BeginPaint(&ps);
Graphics *g1 = Graphics::FromImage(m_image);
g1->Clear(Color(Color::White));
Pen p(Color(255, 0, 0, 0), 5);
g1->DrawLine(&p, 0,0, LOWORD(lParam), HIWORD(lParam));
EndPaint(&ps);
//combine the line with the background
BeginPaint(&ps);
Graphics g2(GetDC());
ImageAttributes imageAttr;
Status stat = imageAttr.SetColorKey(Color::White,
Color::White,
ColorAdjustTypeDefault);
CRect rect;
GetWindowRect(&rect);
if ( !m_image )
m_image = new Bitmap(rect.Width(), rect.Height());
Rect rc;
RedrawWindow(); //call OnPaint to draw the background
g2.DrawImage(m_image,
Rect(0, 0, m_image->GetWidth(),
m_image->GetHeight()),
0, 0, m_image->GetWidth(), m_image->GetHeight(),
UnitPixel, &imageAttr, NULL, NULL);
EndPaint(&ps);
return 0;
}
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
//here i draw a picture as the background
}
it seems that i must redraw all the window when the mouse moving, thus comes with the flicker. can it be avoided?
i ma realfly
|
|
|
|
|
// Start a paint session and create a graphics object.
BeginPaint(&ps);
Graphics *g1 = Graphics::FromImage(m_image);
g1->Clear(Color(Color::White));
Pen p(Color(255, 0, 0, 0), 5);
g1->DrawLine(&p, 0,0, LOWORD(lParam), HIWORD(lParam));
EndPaint(&ps);
Why are you starting a paint session here ? It's causing a WM_ERASEBKGND and you don't need it.
You should set up as much as possible before your BeginPaint, so all you do there is copy the preprepared bitmap into the window.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
You mean that I should copy the Background to a buffer image(1) when i begin draw a line. and then copy the (1) and a drawing line to another image(2),and then copy (2) to the screen?
But it also result redraw all the client when mouse moveing, then it will flicker. i make a test about this.
I load an image when application intialized, and draw it direct to the screen when mouse moveing, but it's also flicker.8(
Is there any mistake of me? Is I must use the SetROP2? but unfortunly is that it can't works with gdi+ in the same time.(is that right?) What should i do?
i ma realfly
|
|
|
|
|
You should draw your screen to an image, without starting a paint call. Then start a paint call and immediately copy that image onto the screen graphics object. The point of the double buffer is that everything is drawn off screen and put to the screen in one action.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|