|
Thank you.
I cannot use CEdit, because I use a 3rd party dialog, and the control is already there.
The only thing I can think of now is creating another control right above it, but only as a last resort.
|
|
|
|
|
So I think easy way is use of a CStatic derived then you can use of WM_ERASEBKGND or WM_PAINT for show values of control then if you need to highlight a section of text use of SetBkMode (in fact you work with four function SetTextColor/SetBkColor/DrawText/SetBkMode).;)
|
|
|
|
|
You can create derive class of CStatic and do following:
1. Add in the message map
<br />
ON_WM_CTLCOLOR_REFLECT()<br />
2. Change Text color in handling function
<br />
HBRUSH CMyStatic::CtlColor(CDC *pDC, UINT uiCtlColor)<br />
{<br />
pDC->SetTextColor();<br />
pDC->SetBkMode(TRANSPARENT);<br />
<br />
return (HBRUSH) GetStockObject(NULL_BRUSH);<br />
}<br />
Good luck.
Henky Purnawan
henky@online-resource.org
|
|
|
|
|
Hi
I am trying to split the MDI client window(not child).Like this GUI:
http://www.smidgeonsoft.com/images/PEBrowsePro945x689.jpg
In the left side there is a treeview and the right side there are MDI windows.
I can use splittter in SDI application wtih this code and it can split:
<br />
class CMainFrame : public CFrameWnd<br />
{<br />
...<br />
protected:<br />
CSplitterWnd m_wndSplitter;<br />
...<br />
};<br />
<br />
<br />
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, <br />
CCreateContext* pContext) <br />
{<br />
CSize minWindow(10, 10);<br />
<br />
int nRows = 2, nColumns = 1;<br />
<br />
return m_wndSplitter.Create(this, nRows, nColumns,<br />
minWindow, pContext);<br />
}<br />
But this doent work with MDI application.
I can't divide MDI client window. I tried this:
<br />
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)<br />
{<br />
CSize minWindow(10, 10);<br />
<br />
int nRows = 2, nColumns = 1;<br />
<br />
m_wndSplitter.Create(this, nRows, nColumns,<br />
minWindow, pContext);<br />
<br />
return CMDIFrameWnd::OnCreateClient(lpcs, pContext);<br />
}<br />
But it gives run time error about ASSERT(pContext != NULL);
How can i divide MDI client window with splitter so i can insert left side a treeview(static/locked) and in the left side i can show view windows..
I couldnt find the solution.
I am looking for your answers.
Thanks...
|
|
|
|
|
I found this(it is what i looked but it is wtl):
http://www.codeproject.com/wtl/mdisplit.asp
But i don't understand the code.
Is there a way to this with MFC?
|
|
|
|
|
If you send me an email, I'll send you (and anyone else interested) a VS2005 project that does this.
I was going to submit it as an article but it's simple and I can't think of anything to write about it.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Hi
Thank you very much.
I am looking for your e-mail.
-- modified at 2:21 Monday 6th August, 2007
|
|
|
|
|
Mark Salsbery wrote: an email, I'll send you (and anyone else interested) a VS2005 project
And for VS2003 email isnt work?;)
|
|
|
|
|
|
|
hi
i exactly follow what in KernelIoControl function's description in MSDN and elsewhere. i know that i've done no mistake. but it gives me the same Preset ID's and Platform ID's for more than one device. please don't tell me the same things in the documentations. just tell me what may be the problem. maybe a fault of manufacturer?
thx
|
|
|
|
|
In the resource edit box,what is the unit of the size which is shown at the bottom?
|
|
|
|
|
ifqf wrote: control the size of Dialog
Do you need to WM_SIZE ?
ifqf wrote: edit box
Do you need to MoveWindow ?
|
|
|
|
|
i'm not sure what your after?
size control is done via overriding WM_SIZE
which is called when the dialog is created and when its size is changes (takes Sizing events, minimise maximise etc).
in resource editor (in VS 05) you can find the size of the dialog or control you have selected in the bottom right conor by default which is in pixels.
does that cover the your question?
-- modified at 12:05 Sunday 5th August, 2007
|
|
|
|
|
ifqf wrote: In the resource edit box,what is the unit of the size which is shown at the bottom?
try handlling WM_GETMINMAXINFO
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
Support CRY- Child Relief
|
|
|
|
|
Hello everyone,
The return value of CoCreateInstance is -2146232576, which is un-documented in MSDN.
http://msdn2.microsoft.com/en-us/library/ms686615.aspx
What does it mean? What is wrong with my code?
<br />
HRESULT hr = CoCreateInstance(CLSID_MyDriver,<br />
NULL,<br />
CLSCTX_INPROC_SERVER,<br />
IID_IMyDriver,<br />
reinterpret_cast<void**>(&driver_interface));<br />
<br />
if (FAILED(hr))<br />
{<br />
if (hr == REGDB_E_CLASSNOTREG)<br />
{<br />
printf("Couldn't create the instance!... 0x%x\n", hr);<br />
}<br />
else if (hr == CLASS_E_NOAGGREGATION)<br />
{<br />
printf("Couldn't create the instance!... 0x%x\n", hr);<br />
}<br />
else if (hr == E_NOINTERFACE)<br />
{<br />
printf("Couldn't create the instance!... 0x%x\n", hr);<br />
}<br />
else if (hr == S_OK)<br />
{<br />
printf("Couldn't create the instance!... 0x%x\n", hr);<br />
}<br />
else<br />
{<br />
printf("Couldn't create the instance!... 0x%x\n", hr);<br />
}<br />
}<br />
thanks in advance,
George
|
|
|
|
|
Interesting error
Maybe some clues here[^]
That's the most I could find.
MArk
*edit* fixed link
Last modified: 12mins after originally posted --
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Thanks Mark,
I have tried to register into GAC, but the error message is still the same. Any ideas?
regards,
George
|
|
|
|
|
/*
Try putting your CLSID and GUID in there
and see if this gets you going
*/
IMyDriver driver_interface;
// Class ID (GUID)
IID IID_IMyDriver;
::IIDFromString(L"{12345678-1234-1234-1234-123456789012}",
&IID_IDriver_Interface);
// CLSID
CLSID CLSID_IMydriver;
::CLSIDFromString(L"{98765432-9876-9876-9876-987654321098}",
&CLSID_MyDriver);
// When using CoCreateInstance
hr=CoCreateInstance(CLSID_IMydriver,NULL,CLSCTX_INPROC_SERVER,
IID_IMyDriver,(void**)&driver_interface);
if (SUCCEEDED(hr)) {
// Do something with driver_interface
}
|
|
|
|
|
Thanks bob16972,
I have tried your new method, but the error is the same. I suspect the DLL (which implements MyDriver class) is not loaded correctly. Do you think so? What is the check list?
regards,
George
|
|
|
|
|
Here are some ideas/questions based on past experiences with COM...
When you register/unregister the dll using "regsvr32.exe" from a "cmd" window, what message do you get?
Have you verified that the item shows up in "OLE View"? If you are using Visual C++ 6.0, "OLE View" is in the "Microsoft Visual C++ 6.0 Tools" in the program list.
You can also search HKCR (HKEY_CLASSES_ROOT) to verify the ProgID, CLSID, and classes are all there.
How did you create your MyDriver class in Visual C++?
Did you verify the CLSID and the class GUID are correct in your code? Always copy and paste them from "OLE View" to avoid any miskeying when not using the ProgID.
|
|
|
|
|
Thanks bob16972,
I have tried to write an executable and using the same code to utilize the function from the COM component, it works!
Previously, I wrote a COM (C++ unmanaged code), and use the C++ COM invokes another function from a C# COM (managed code), and it fails -- this is what I described at the beginning of this question -- "return value CoCreateInstance not documented in MSDN".
Any ideas? Why exe as a client works but DLL as a client does not work?
regards,
George
|
|
|
|
|
Hi all,
i am facing a problem while passing a reference as structure from one class member function to another class member function.
ie) i will pass a struct as input from Class A member function
to Class B member function. There in Class B member function
it has to fill the Structure and give me the filled structure
in Class A member function.
Note: this i am facing in vc++. i am having two dialog classes where i have to send this reference variable from first class member function to second Class member function.
please this very very urgent for me.
-- modified at 1:57 Sunday 5th August, 2007
Uday kiran
|
|
|
|
|
Can you show an example of the method declaration and how you were calling it?
What exactly is the problem that's occurring?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Either you pass the member function a pointer to the structure (&structvar), or make the receiving function accept the argument by reference (classname::member(structtype & structvar).
|
|
|
|