|
The solution which initially springs to mind is what you can do with the PreCreateWindow function. As the name suggest, this function is called right before the window is created. The only parameter is a reference to a CREATESTRUCT. Create structs have these parameters...
LPVOID lpCreateParams;
HINSTANCE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCTSTR lpszName;
LPCTSTR lpszClass;
DWORD dwExStyle;
All of these variables are a goldmine of useful settings. Whats interesting about CREATESTRUCT in the context of MDI is that lpCreateParams is a pointer to a MDICREATESTRUCT. This has these members...
LPCTSTR szClass;
LPCTSTR szTitle;
HANDLE hOwner;
int x;
int y;
int cx;
int cy;
DWORD style;
LPARAM lParam;
with this you can do all sorts of stuff like setting the windows size, and by changing the style parameter you can get the window maximized...
e.g. ((MDICREATESTRUCT*)cs.lpCreateParams)->style |= WS_MAXIMIZE;
Hope that lots of use!
With time we live, with money we spend!
Joel Holdsworth
|
|
|
|
|
Ok... don't comment on the logical side of this code, I just have a small question that needs to be answered...;P
This code will give me a "user breakpoint" before exiting if I keep "for(i=6;i<8; i++)". BUT, change that to "for(i=6;i<7; i++)", which will obviously go through the loop only once, will work and exit properly.
So I guess that I don't even know how to use chars anymore (thanks to MFC and CString!!!) And I need to know why it won't work and what is the proper way to achieve what I want to do. Here's the code:
int main(int argc, char* argv[])
{
int i = 6;
char *pBody = new char;
char sz[4] = "test";
strcpy( pBody, "\0" );
for(i=6;i<8; i++)
{
strcat( pBody, sz );
strcat( pBody, ": " );
strcat( pBody, sz );
strcat( pBody, "\n" );
}
strcat( pBody, "\0" );
return 0;
delete [] pBody;
pBody = NULL;
}
Also, I guess it would be a nice thing for me to re-learn C/C++... I feel like a hobbyist...
Thanks!
---------------
Ok, we suck at C/C++, but we're good at website design and MFC apps!!!
http://www.edovia.com
|
|
|
|
|
Ok, I guess I should use:
char *pBody = new char[somevalue];
instead of:
char *pBody = new char;
silly me... But the thing is that I don't know how many loops I'll have. Can I resize the char on the fly? Or, I could use:
char *pBody = new char[nbOfFields-6];
Is that correct?
Another question I end up answering myself!
---------------
Nah, we're cool!
http://www.edovia.com
|
|
|
|
|
if you want to make memory leaks the second thing works perfectly.. but you can't resize arrays on the heap..
so if oyu wanna resize it.. use sthing like:
char *pBody = 0;
pBody = new char [14];
delete pBody;
pBody = new char [16];
hope this helps..
(i just can recommend that you try to give std::string a try.. cause i think c-arrays suck royal.. i shot myself in the foot with this too often )
Sometimes I think the surest sign for intelligent life elsewhere in
the universe is that none of them ever tried to contact us.
|
|
|
|
|
I wanted to use std::string but a function I use requires a const char[] as a parameter and string.c_str is no good. Unless there's a way to convert the string to a char when I'm done...
any ideas?
[edit] I guess string.c_str didn't work because I thought it was a variable, not a function. string.c_str() should work. Speaking of work, I think I work too much
---------------
http://www.edovia.com
|
|
|
|
|
hemm?
std::string s;
char an_old_array [16] = "";
s = "hy luke";
a_old_function (s.c_str());
strcpy (an_old_array, s.c_str());
do you have got any other questions ?
or what do you need exactly ?
Sometimes I think the surest sign for intelligent life elsewhere in
the universe is that none of them ever tried to contact us.
|
|
|
|
|
No, you answered it perfectly! It's me that was confused... I should take a nap
Thanks Bernard!
---------------
http://www.edovia.com
|
|
|
|
|
no problem...
bernhard
Sometimes I think the surest sign for intelligent life elsewhere in
the universe is that none of them ever tried to contact us.
|
|
|
|
|
perhaps you can use
YourConstChar=YourCstring.GetBuffer(0);
|
|
|
|
|
Shouldn't it be
<br />
delete [] pBody;<br />
instead of
<br />
delete pBody;<br />
?
|
|
|
|
|
of course..
sorry.. but i have to say that i hardly (say never) use c-arrays.. so.. that may be the reason why i didn't notice that..
yeah..
have a nice time..
bernhard
Sometimes I think the surest sign for intelligent life elsewhere in
the universe is that none of them ever tried to contact us.
|
|
|
|
|
WHEWWWWWWW!!!!!!
When I read this subject, I thought my secret had been exposed.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Since I started to use STL in my application it depends on the MSVCP60 library. I thought that since STL is a set of template classes it would be static linked, but unfortunately it isn't.
Is there some way to avoid this dependency?
Cheers,
- xico -
|
|
|
|
|
STL need not be linked in. Its a source code thing totally or that's what CG has got me to believe
Nish
One little CD gone,
Then two CDs gone,
Then 5 more gone,
For a total 7 gones,
If I was a CD R,
I'd wanna cry,
Cause I'd be just a goner,
For a nasty CD burner.
[funny how frustration wakes up the poet in me]
|
|
|
|
|
Nope, STL just like anything else can be compiled into a DLL with the methods exported. You will find that the string class does this a lot.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Link with it statically (i.e. libc instead of msvcrt).
Project/Settings: Tab "C/C++". Select "Code Generation" from the drop-list. Select anything suitable that does not contain "DLL" in the drop-list for "Use run-time library:".
/Mike
|
|
|
|
|
Hi!
I am using WINDOWPLACEMENT structure to get and set the size of window. Although the size of the window is correct, the left and top positions remain the same. So, the positon of my window never gets recorded. Does anybody know why?
Thanks,
NC
|
|
|
|
|
WINDOWPLACEMENT holds/sets information about the position info in certain states. It doesn't get/set the current positon of the Window.
Look at...
GetWindowRect()
SetWindowPos() or MoveWindow()
Jeremy L. Falcon
"The One Who Said, 'The One Who Said...'"
<nobr>
Homepage : Feature Article : Sonork = 100.16311
|
|
|
|
|
Does anyone knows where I could find a class that manages a CGI app? Like gets the environment variables, send stream to browser, etc.
I have some problems with the one I'm using right now so I'm looking for another one. I currently use TCGI you can find it at: http://hjs.geol.uib.no/CplusPlus/
Plus, if that class could be easily debugged (the one I use will always exit if I run the app in the console, so I can't debug!)
Thanks!
---------------
http://www.edovia.com
|
|
|
|
|
There's not really a lot of code needed. To get parameteres from post and get, read argv and call getenv(). To compose your HTML, just do couts or printfs.
|
|
|
|
|
Does somebody knows how to Implement a powerpoint slideshow in a view into an MFC application !!!
-= Where men fail, Dream Vision rulez ! =-
"I swear by my life - and my love of it - that I will never live for the sake of another man, nor ask another to live for mine." - John Galt
|
|
|
|
|
I have very simple problem that When I disable the ComboBox which has type "DropDown". It becomes grayed. I want it to be in White Color.
I use "OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)" to change it but it dose not work properly .
I wrote following code
Following are Class Variables
CBrush bkBrush;
CBrush rBrush;
BOOL CMyDialogBox::OnInitDialog()
{
CDialog::OnInitDialog();
. . .
rBrush.CreateSolidBrush(RGB(255,255,255));
bkBrush.CreateSolidBrush(RGB(255,255,255));
. . .
}
HBRUSH CMyDialogBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
switch(pWnd->GetDlgCtrlID())
{
case IDC_COMBO:
pDC->SetBkMode(TRANSPARENT);
if(GetDlgItem(IDC_COMBO) != GetFocus())
hbr = rBrush;
else
hbr = bkBrush;
break;
default:
break;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
Remember that ComboBox has property of Drop Down.
Thanks in advance.
|
|
|
|
|
Use the following code,
if( pWnd->GetDlgCtrlID() == 1001 && pWnd->GetParent()->GetDlgCtrlID() == IDC_CMB )
return (HBRUSH)m_Brush ;
Here theIDC_CMB is the id of the combo box. In general the edit box of the
combo has the ID of 1001. This information is obtained by using Spy++.
But i do not think it will be changed in future.
|
|
|
|
|
Sorry!!!
It is Drop List.
|
|
|
|
|
SKeung (Visitor) Apr 11, 2002
I have writen a program with GUI in C++. It is used to get the many kinds of system message by using SetWindowsHookEx.
I have two functions.
The first is:
void createHook()
{
hMouseHook = SetWindowsHookEx( WH_MOUSE, (HOOKPROC) MouseHookProc, hInst, 0L );
}
The second is:
LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam )
{
LPMOUSEHOOKSTRUCT MouseHookParam;
if ( nCode >= 0 )
if ( wParam == WM_MOUSEMOVE )
{
if ( nCode == HC_NOREMOVE )
strcpy(szType, "NOT Removed from Queue");
else
strcpy(szType, "REMOVED from Queue");
MouseHookParam = (MOUSEHOOKSTRUCT *) lParam;
printf("Mouse at X = %d, Y = %d is %s\n\n", MouseHookParam->pt.x, MouseHookParam->pt.y, szType );
/// write to file to show result
f1=fopen("c:\\report.txt","a+");
fprintf(f1, "Mosue Location At ( %d, %d )\n", MouseHookParam->pt.x, MouseHookParam->pt.y);
fclose(f1);
///
}
return ( CallNextHookEx(hMouseHook, nCode, wParam, lParam) );
}
The problem is that if the mouse moves inside the GUI frame, the data can be saved in a text file and printed out on the screen, but the mouse moves outside the GUI frame, the mouse data can be only saved in a text file, but it cannot be printed on the console screen.
The printf seems not to run and by-pass this statement.
Why? plz help me, Hero!!! Thz a lot!!!
|
|
|
|