|
Sirs,
I have problems with tooltips in my VC editor. That is to say I have problems with some type of them and not always.
To be more concrete: e.g. a win32 API or an MFC function's prototype should be shown in tooltip when I type them in the editor.
Unfortunately it does not always work.
I noticed that this problem is confined to some of my projects, while in the others tooltips work just fine.
I cannot figure out what the problem might be.
All options of Tools/Options/Editor/Statement Completion are checked.
Could somebody please help?
Bunburry
The only thing that the artist cannot see is the one that the public can see: the obvious...
|
|
|
|
|
Bunburry wrote:
Sirs,
There's chicks here as well...
I dunno what your problem is, but I recommend you go to www.wholetomato.com and download Visual Assist - tooltips on steroids and a whole lot more.
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
First, sorry I don't have my source with me (i'm at work), but its typical source so maybe you don't need to see it.
Where I'm at:
I've created an addon application for another program. It adds menu's using createmenu/createpopupmenu/appendmenu/insertmenu, and then I have them subclassed the usual way.
The problem is, the program I've added the menu too, only has top level menu's, no submenu's. I've added a submenu. In the subclass routine, I have my cases's setup watching for WM_COMMAND and matching them to the menuid's.
No matter what I've tried, I cant get any response from the submenu's I've added. All the top level menu's work perfectly.
I hear this is a common problem when adding menu's to application's using thunderforms that were initially designed with top level menus only (no branches), but I'm sure there is a way around it.
Anyone have any suggestions?
|
|
|
|
|
Is it possible to use a dialog box to diisplay a CSrollView?
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Why not use and SDI CFormView?
|
|
|
|
|
Because I'm in the middle of writing a dialog based app that doesn't have doc/view support, and it would not be efficient to start over.
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
|
Well, there's a couple of problems with the approach he's taken, but it might be a starting point. I saw that article earlier but ignored it for the same reason.
An alternative method I've already tried is setting a static control on a dialog box and trying to draw to it instead. It's been problematic, so I guess I'll try that article.
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
John, you can see in the MSJ January 2000. I that isue paul Dilascia, shown how implement a CHTMLView in a Dialog Box, if you read that article you will can implement a CView Class in a Dialog.
I hope to Help...
Today is Friday!!!! Free for all CP!!!!
Carlos Antollini.
Sonork ID 100.10529 cantollini
|
|
|
|
|
Yes, I have used a treecontrol, and subclassed it to my own view derived from CScrollView, By using a treecontrol, you don't have to worry about not getting all mouse actions and things like that.
So yes it can be done!
|
|
|
|
|
Can you possibly provide some sample code?
I tried the article mentioned above and it asserts in wincore.
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Hi John,
In an app I am currently working on which is MDI, I wanted each MDI View to be a CFormView with a dialog resource. The problem I had was making the window look like a dialog box. I was trying to port the look and functionality of an Access form into an MDI arcitecture.
I had to modify the CChildFrame and the main CFormView derived classes.
If this sounds like what your looking for I can send you the sample code.
Giles
|
|
|
|
|
Actually, all I need is a place to draw some stuff (using GDI calls and such). It doesn't have to scroll, it doesn't need to respond to mouse clicks, it doesn't even need to open a document. I think I'll try just creating a CWnd and attaching it to the dialog somehow.
I figured using a CView would be easier, but it's been a pain in the ass.
Let's also not forget that this is a dialog-based app where I did not elect to support doc/view.
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
I wrote ActiveX with ATL,I add background color
property when I insert control into project,How can I add
property sheet,for this stock property?
|
|
|
|
|
Try adding
PROP_ENTRY("BackColor", DISPID_BACKCOLOR, CLSID_StockColorPage)
in between your BEGIN_PROP_MAP and END_PROP_MAP in your header file.
HTH
Jignesh
|
|
|
|
|
I have several applications that use custom CWnd controls. And for some reason, when I use GetDC() and ReleaseDC() while handling a WM_PAINT message, as soon as OnPaint() is done, it gets called again. This craziness seems to go away when I use a local CPaintDC.
Trouble is, I'm now trying to fix an old app that uses a seperate thread to handle the drawing. OnPaint() puts a custom PAINT message in a queue for the thread, which in turn uses GetDC() on a hWnd (GetSafeHwnd()). I can't seem to construct a CPaintDC without MFC ASSERTing that the CWnd is invalid.
void OnPaint() {
queue.PushEvent(PAINT, currentRange);
}
int ThreadProc(CWnd *pWnd) {
while(1) {
t = queue.PopEvent();
switch(t) {
case PAINT:
HWND hWnd = pWnd->GetSafeHwnd();
HDC hDC = GetDC(hWnd);
CDC *pDC = CDC::FromHandle(hDC);
...
ReleaseDC(hWnd, hDC);
break;
...
}
}
}
When I try CPaintDC dc(pWnd), it ASSERTs.
So...
Q1) Has anyone else ever seen the never-ending stream of WM_PAINT messages? And if so, any idea how to prevent it?
Q2) Can anyone come up with a nice way of creating a CPaintDC from a CWnd inside a thread? I can't easily (and safely) create the DC outside the thread and pass it in.
J
|
|
|
|
|
Found CWnd::BeginPaint() and CWnd::EndPaint(). That got rid of the never-ending messages. I'd still like to know what that happens...
I have other problems remaining, but I'm pretty sure they're unrelated.
Anyone else out there detest debugging other people's old ugly code?
J
|
|
|
|
|
Hi,
I have got a dialog(CDialog). In OnInitDialog() I create second dialog(CPropertyPage), which is child of first dialog. When I execute app, second dialog is redrawed only when I resizing the app window ?? Why ??
(routeing messages ?? )
|
|
|
|
|
Does the second dialog appear at all, or is this just a problem with the redraw. You'll have to post your code so we can see what is wrong.
Michael
|
|
|
|
|
Ufff Its now ok,but :
Where must i write the code for painting dialog background ? When i put the code in OnPaint(), all control are redrawed by background.
|
|
|
|
|
OnEraseBkgnd.
Christian
After all, there's nothing wrong with an elite as long as I'm allowed to be part of it!! - Mike Burston Oct 23, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
Wizard_01 wrote:
Where must i write the code for painting dialog background ?
Handle WM_ERASEBKGND and paint the background in that handler.
--Mike--
http://home.inreach.com/mdunn/
Help! Help! I'm being repressed!!
your with and
Sonork - 100.10414 AcidHelm
|
|
|
|
|
Suppose IDC_EDIT1 is the ID of the edit box, so if i do
if (GetDlgItem(IDC_EDIT1)->IsKindOf(RUNTIME_CLASS(CEdit)))
AfxMessageBox("Type of the class is CEdit");
Message should be displayed.but it is not displaying.
I want to check the type of control, and i have only CWnd pointer , what should i do.
EXPLANATION
............
I have a CWnd Pointer and from this pointer i want to check what was the type of the control,whether it is CEdit, or CButton etc.
what should i do
|
|
|
|
|
The use of RUNTIME_CLASS may not return the right stuff for ya because you perhaps haven't declared DECLARE_DYNAMIC, DECLARE_DYNCREATE, or DECLARE_SERIAL in your class:
"RUNTIME_CLASS returns a pointer to a CRuntimeClass structure for the class specified by class_name. Only CObject-derived classes declared with DECLARE_DYNAMIC, DECLARE_DYNCREATE, or DECLARE_SERIAL will return pointers to a CRuntimeClass structure." <-- From MSDN Library
------------------------------
©0d3 ©®4©k3® - That's me!
------------------------------
|
|
|
|
|
if (GetDlgItem(IDC_EDIT1)->IsKindOf(RUNTIME_CLASS(CEdit)))
AfxMessageBox("Type of the class is CEdit");
...is never going to work because...
CWnd *p_MyWnd=GetDlgItem(IDC_EDIT1);
CRuntimeClass *p_RTC=p_MyWnd->GetRuntimeClass();
in the debugger shows p_RTC to be a kind of CTempWnd. Your class is of no particular type until your pointer is cast as the desired type. Basically, GetDlgItem(IDC_EDIT1) is NOT a CEdit, until you cast it as CEdit.
Of course, this doesn't help you much, but it might help you sleep at night
My tuppence aimed at actually solving your problem though:
work out the window class (not the same as a C++ class.
Sorry to dissapoint you all with my lack of a witty or poignant signature.
|
|
|
|