|
He just means click on the drop-box portion of the combo-box to have it show where the drop-down portion of the combo-box will show. This drag the bottom of the box down to make it bigger. Also note that the box can be bigger than the dialog it current is parented to.
Joel Lucsy
|
|
|
|
|
I have always had problems with combo box sizing too.
I tried to locate the "open drop box drop button" in resource editor andd had no luck.
Could you explain how to do this with a drop-list style combobox?
I have been using the work-around of changing the combobox style to simple because the simple style allows you to adjust the height. Then when you switch the style back to drop-list it keeps that height.
|
|
|
|
|
You click on the same arrow as you would in a program to open the list.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
I never would have figured that out on my own! That was the strangest thing I have done with VC 6.0!!! Thank you both for your help and quick replies!!
Jim D
|
|
|
|
|
Yes, VC++ sucks big time on this one, it should figure out the drop-down height by itself according to how many items there are and resize to fit at runtime. What the hell is so useful with a combo box that has zero drop-down height?
|
|
|
|
|
Hello,
I have a CTreeCtrl object with checkboxes. Everything is working fine!
But I don't know which notification is sent when an user click on a checkbox. I've looked everywhere, but I cannot seem to find it. Is it burried to deep within the msdn or is it just one little unducumented thingy...
thanks in advance!
A student knows little about a lot.
A professor knows a lot about little.
I know everything about nothing.
|
|
|
|
|
I didn't find any either, so I handled click + keyboard directly. There are some other nasties as well.
Clicky[^]
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
Thanks a lot!
A student knows little about a lot.
A professor knows a lot about little.
I know everything about nothing.
|
|
|
|
|
Hi people!
I´m starting programming with Windows GDI plus. As I usually have to lead with Bitmaps in my projects , I´m trying to do some experiences with Graphics::DrawImage. I could see that it is very easy and works very well when I got the bitmap from a file . But I did´nt have success when I tryed to get the image from a resorce bitmap. I used the following code (Microsoft VisualC++):
void CBitmapsView::OnPaint()
{
CPaintDC dc(this); // device context for painting
Graphics graphics(dc);
GetApplication
Bitmap *Bitmap_Res;
Bitmap_Res = Bitmap::FromResource(instance,L"BOTAO");
graphics.DrawImage(Bitmap_Res, 100, 100);
/*When instance is a global variable updated in CBitmapsView::PreCreateWindow*/
}
Usind this code I don´t have a bitmap drown in my window, and neither do I have any error message ...
Could you help me in this problem ?
thanks !
|
|
|
|
|
Sorry people ...
the code doesn´t have a call to Get application :
void CBitmapsView::OnPaint()
{
CPaintDC dc(this); // device context for painting
Graphics graphics(dc);
Bitmap *Bitmap_Res;
Bitmap_Res = Bitmap::FromResource(instance,L"BOTAO");
graphics.DrawImage(Bitmap_Res, 100, 100);
/*When instance is a global variable updated in CBitmapsView::PreCreateWindow*/
}
|
|
|
|
|
Every thing looks good, but you are not checking the return value of the FromResource() function. Are you sure that it is loading the bitmap? Do you have a bitmap named "BOTAO" or is BOTAO an integer that was defined in your resource.h file. If the later, use the MAKEINTRESOURCE() macro. Is instance the correct value? why not use AfxGetInstanceHandle() instead?
Sonork 100.11743 Chicken Little
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
Within you lies the power for good - Use it!
|
|
|
|
|
Hi PJ Arends ...
Yes I´m sure that it is loading a bitmap (At last it returns a non zero value). BOTAO is a integer that was defined in resource.h , so I´m a bit confuse because the documentation says:
=============================================================================
static Bitmap* FromResource(
HINSTANCE hInstance,
const WCHAR* bitmapName
);
Parameters
bitmapName
[in] Pointer to a null-terminated string that specifies the path name of the bitmap resource to be loaded. Alternatively, this parameter can consist of the resource identifier in the low-order word and zero in the high-order word. You can use the MAKEINTRESOURCE macro to create this value.
=============================================================================
I´ve tried to pass the parameter as a string . Haven´t I?
I re wrote the code using a local variable for instance, and I used AfxGetInstanceHandle() . But the window is still clear...:
void CBitmapsView::OnPaint()
{
CPaintDC dc(this); // device context for painting
HINSTANCE instance;
Graphics graphics(dc);
Bitmap *Bitmap_Res;
Bitmap_Res = NULL;
instance = NULL;
instance = AfxGetInstanceHandle() ;
if(instance==NULL)
{
MessageBox("instance=NULL","Error",MB_OK);
return;
}
Bitmap_Res = Bitmap::FromResource(instance,L"BOTAO");
if(Bitmap_Res==NULL)
{
MessageBox("Bitmap_Res=NULL","Error",MB_OK);
}
else
{
graphics.DrawImage(Bitmap_Res, 100, 100);
}
}
|
|
|
|
|
arturapps wrote:
BOTAO is a integer that was defined in resource.h
Bitmap_Res = Bitmap::FromResource(instance, MAKEINTRESOURCE(BOTAO));
Sonork 100.11743 Chicken Little
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
Within you lies the power for good - Use it!
|
|
|
|
|
Hello,
I know I'm doing something really stupid here but I can't figure it out.. I have a server app.. it spawns multiple client windows while it's running.. After I spawn a window I am trying to store a pointer to that window in a vector.. then once I decide to close the server window if any of the other client windows are open I want to close those too.. The reason I'm doing it this way is because all of the client windows have different names.. anyway heres the code.. anyone see anything wrong?
// In header
struct s_windows{
CWnd* pWnd;
};
std::vector<s_windows> v_windows;
// Adding a pointer to the just opened client window..
CWnd *pNewWnd = CWnd::FindWindow(NULL,_T("The Client App Name"));
if(pNewWnd)
{
s_windows sWindows;
sWindows.pWnd = pNewWnd;
v_windows.push_back(sWindows);
}
// IN Servers WM_CLOSE
std::vector<s_windows>::iterator iter_windows;
iter_windows = v_windows.begin();
while(iter_windows != v_windows.end())
{
s_windows sWindows;
sWindows = *iter_windows;
// IF WE HAVE A OPEN CLIENT WINDOW.. SEND IT A MSG TO CLOSE.
if(sWindows.pWnd)
{
sWindows.pWnd->SendMessage(WM_CLOSE,0,0);
}
iter_windows ++;
}
I must be storing the pointer wrong.. Any ideas?
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
Rob, What exactly is the problem? I assume the Windows aren't being closed. Have you verified that the pWnd from FindWindow() is what you think it is. Also I wouldn't use a CWnd* here. FindWindow() may well be returning a temporary CWnd*. Far better to save the hWnd and do ::IsWindow() before doing WM_CLOSE. And finally I can't see the point of struct s_windows. I think the <> are missing from std::vector v_windows;
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
Neville Franks, is corect.
1) Store the handle to the window insted of an object pointer, of unknow duration.
2) if(sWindows.pWnd) become if(::IsWindow(sWindows.hWnd))
One question:
If the windows, you are closing, are realy client windows, then why would you need to go thru all this trouble? (It should happen automaticaly.) The only reason for doing what you appear to be doing is if they are not client windows of your app.
INTP
|
|
|
|
|
Thanks to both of you for your replies.. I haven't tried your suggestions yet, I'm home now and not at work.. The reason for doing this as I am is that the client app is a totally separate exe. The server is a SDI and so is the Client..
I do a execute on the client window (with in the server), then right after that I do a FindWindow to get a CWnd pointer to that window.. I know the pointer is valid at that point because I do a WM_COPYDATA to the client window and display the results.. but then some of these windows get closed by the user and some stay open for the duration of the server.. I am looking to close all client windows when the server is closed. I'll look into another approach for this. It appears that the pointer is not valid anymore by the time the server is closed because none of the windows receive any of the send messages..
Thanks again.
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
Thanks,
I'm back at work and I am storing the hWnd instead and using the IsWindow.. this works perfect.. Thanks everyone..
Rob
Whoever said nothing's impossible never tried slamming a revolving door!
|
|
|
|
|
I maybe wrong here (as usual), but:
From looking into that line of code:
CWnd *pNewWnd = CWnd::FindWindow(NULL,_T("The Client App Name"));
I would assume that "The Client App Name" window doesn't belong to your module (it's not this module that created it).
If my assumption is true, then CWnd::FindWindow returns temporary CWnd object.
Therefore that temporary CWnd object maybe already deleted at the time you are using it later.
Solution:
Instead of storing CWnd* -- store HWND, like that:
struct s_windows{<br />
HWND hWnd;<br />
};
Regards
"...Ability to type is not enough to become a Programmer. Unless you type in VB. But then again you have to type really fast..."
Me
|
|
|
|
|
Hi all,
How can i disable "WinLogo Key" in the KeyBoard Programmatically ? Also Ctrl+Alt+Del ?
Best Regards.
|
|
|
|
|
This has been discussed several times here at CP, and on the microsoft.public.vc.mfc newsgroup. As best as I can remember, neither is possible as they are intercepted by the keyboard device driver before being passed on.
|
|
|
|
|
|
I need to do it programmatically for 2 RichEdit's. When I press VK_DOWN in one the second shold scroll down too. How is it done?
|
|
|
|
|
If you are using Document/View and both windows are displaying the same document then you could use a document member variable to keep track of which line is displayed at the top of the window and then just call UpdateAll() when that value changes in one of your views.
INTP
|
|
|
|
|
I use nothing in MFC. I write an ATL component with 2 RichEdits so I need a way to do it in pure WinAPI.
|
|
|
|