|
Ok,
So you open VS 6 C++.
You choose a new project and you choose a Win32 Application.
It brings up a small dialog asking things like "empty project" | "Hallo World".
So I chose the "Hallo World" one.
The complier builds a couple of resources cpp files, header files and so on.
The thing is how can I change that main window that the compiler created. It looks like everything was created using code by the compiler. Cause the createWnd function was used and so on.
Makes sense?
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
You need to look in to WM_PAINT , in WndProc function, that is where painting operation occurs.
Or I've misinterpreted again !
|
|
|
|
|
How would one add buttons & listboxes & textboxes ?? ??
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
You need to handle this in WM_CREATE message.
Add this code to your WndProc in switch statement.
case WM_CREATE:
{
HWND HwND = CreateWindow("BUTTON","My Button", WS_CHILD |
WS_VISIBLE | BS_PUSHBUTTON , 20,20, 50,50,hWnd,(HMENU) ID_BUTTON1,hInst,NULL);
ShowWindow(HwND,SW_SHOW);
}
|
|
|
|
|
Thnx Prasad...
And you have to do it for each component you would like to add? Isn't there an easier way?
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
Programm3r wrote: Isn't there an easier way?
Nope .
Thats why MFC comes up.
|
|
|
|
|
Hi all,
Take the follwoing into consideration:
vector<string> getSecNameString = CIniFile::GetSectionNames(FileName);
for(int i=0; i < (int)getSecNameString.size(); i++)
{
cout << "\n** Section Name ** -> " << getSecNameString[i].c_str() << endl;
vector<CIniFile::Record> getSecString = CIniFile::GetSection(getSecNameString[i], FileName);
printf("\n.... GetSection Keys & Values ..... \n");
printf("--------------------------------------\n");
for(int i=0; i < (int)getSecString.size(); i++)
cout << getSecString[i].Key.c_str() << "=" << getSecString[i].Value << endl;
}
The output would look someting like this:
[Section A]
keyA=1
keyB=2
{Section B]
keyC=3
keyD=4
O.k so now one wants to put each of these values into labels and textboxes.
For example the following must happen (Non-visual example):
label1 -> keyA
textBox1 -> 1
label2 -> keyB
textBox1 -> 2
and so on...
Please note that one would not know the limit of each section or key, and don't mind the "[]"
Thanx in advance
The only programmers that are better than C programmers are those who code in 1's and 0's.....
Programm3r
|
|
|
|
|
Hi,
i have developed .lib for logger from opensource called log4cxxx.
they have given samples to use the .lib file. while i am using functions (which are implemented in .lib) with string parameters got link error
rror LNK2001: unresolved external symbol "public: void __thiscall log4cxx::Logger::debug(class std::basic_string<char,struct std::char_traits<char="">,class std::allocator<char> > const &,char const *,int)" (?debug@Logger@log4cxx@@QAEXAB
V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PBDH@Z)
../Bin/Static Debug/trivial.exe : fatal error LNK1120: 1 unresolved externals
where as i didn't get any error for functions with integers.
function protype
void Logger::debug(const String& message,const char* file=0, int line=-1);
i am using
const char *file1="log.txt";
debug("debug info",file1,100);
can anyone help on this issue.i am using vc6.0.
advance thanks
|
|
|
|
|
rgchezhian wrote: "public: void __thiscall log4cxx::Logger::debug(class std::basic_string,class std::allocator > const &,char const *,int)"
Please go through the function prototype again. There may be some mismatch.
If that is OK then try to link the libray as following preprocesser directive.
#pragma comment(lib,"full path of library")
put above line in .cpp file below the header includes
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
Hi everyone,
Maybe my question is funny but I want to know what is it?
CMap<UINT,UINT,UINT,UINT> Map;Map m_Map;or CList <int> m;
or typedef CMap<UINT,UINT,UINT,UINT> m_Map;I know that typedef declare a new kind of an exist kind
|
|
|
|
|
messages wrote: I know that typedef declare a new kind of an exist kind
Then what else you want to know ?
|
|
|
|
|
Hi thanks for your help
I want to know what is it CMap<> or CList<>
|
|
|
|
|
messages wrote: I want to know what is it CMap<> or CList<>
This means that, these classes requires templete arguments.
|
|
|
|
|
Sorry I ask again I have another question can you explain for me For example what is it CMap<int,int,int> Map; Map m;
thank you prasad_som
|
|
|
|
|
Possibly you are asking, what is
typedef CMap<UINT,UINT,UINT,UINT> Map;
Map m. Because, what you have asked is not possible.
Its used just to increase redability.
|
|
|
|
|
When we must use of this case of course I know its depends to our program
I cant understand what is it typedef CMap<UINT,UINT,UINT,UINT> Map; Map m.
|
|
|
|
|
messages wrote: typedef
typedef is keyword for declaring synonym for type declarations.
i.e.
typedef char TCHAR;
Now, TCHAR
can be used instead of char .
messages wrote: what is it typedef CMap<uint,uint,uint,uint> Map; Map m.
typedef CMap<UINT,UINT,UINT,UINT> Map;
This statement indicates Map is synonym of CMap<UINT,UINT,UINT,UINT> .So statement
Map m ; is actually CMap<UINT,UINT,UINT,UINT> m;
|
|
|
|
|
messages wrote: I want to know what is it CMap<> or CList<>
These are wrapper classes for STL::map and STL:list respectively.
Go through the following article for more info about maps.
http://www.codeproject.com/cpp/cmap_howto.asp[ ^]
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
Thank you this link is very helpful
|
|
|
|
|
A_LaxmanThese are wrapper classes for STL::map and STL:list respectively
No, these aren't.
A_LaxmanGo through the following article for more info about maps.
http://www.codeproject.com/cpp/cmap_howto.asp[^]
You can see , MFC has its own implementation.
|
|
|
|
|
prasad_som wrote: You can see , MFC has its own implementation.
Yes, There is seperate implementation for CMap in MFC.
Thanks for update.
Knock out 't' from can't,
You can if you think you can
|
|
|
|
|
I have a transparent image (BMP) that I want to be able to place text on.
I have used SekBkMode to set TRANSPARENT, and also set the brush to bsClear.
This works great for old-style fonts, however True Type fonts seem to have some kind of anti-aliasing built it. When these fonts are drawn onto the canvas (at larger font sizes), the curves are edged in a colour halfway between the font colour and the transparent colour which makes them a little unsightly.
I can't just copy whats behind the text and use that as a background, as the layer beneath is liable to change at any time.
Is there any way to disable this effect?
Can I use fonts like Arial or Copperplate-Gothic-Light in font sizes above 16 without getting strange colours?
|
|
|
|
|
I'm sorry to disturb all of you, I feel like I'm missing something here.
I'm trying to use call a function in a DLL I have written and have so far done this:
DLL Side
int __stdcall Topo(LPSTR Param)<br />
{<br />
<code><br />
}
Calling Function side
typedef int (__stdcall * FuncPtr)(LPTSTR);<br />
<br />
int APIENTRY WinMain(HINSTANCE hInstance,<br />
HINSTANCE hPrevInstance,<br />
LPSTR lpCmdLine,<br />
int nCmdShow)<br />
{<br />
HMODULE TopoPtr;<br />
FuncPtr TopoFunc;<br />
CHAR Output[50]={0};<br />
<br />
if (TopoPtr = (HMODULE) LoadLibrary ("<location of DLL>") )<br />
{ <br />
TopoFunc = (FuncPtr)GetProcAddress(TopoPtr, "Topo");<br />
if ( TopoFunc && TopoPtr )<br />
{<br />
TopoFunc(<Params>);<br />
}<br />
FreeLibrary ( TopoPtr );<br />
}<br />
<br />
return 0;<br />
}
Export.def
LIBRARY CheckTopo<br />
EXPORTS<br />
Topo @1
The error is this: When I call TopoFunc, I get a stack overflow. Tracing it by stepping through, I find that the stack overflow occurs BEFORE I enter the code in the DLL Side. Is there something wrong with my calling of the function? Or is it nothing to do with that and that I should be looking at something else?
|
|
|
|
|
JJeffrey wrote: TopoFunc();
Did you miss to pass string here ?
|
|
|
|
|
No, I just removed all the irrelevant code. I did remember to pass the string. It is a LPTSTR.
And as to the other poster's statement, been there, done that. It is calling into the debug dll correctly, but the stack overflows when the program steps through from the calling EXE to the debug DLL in VC++
|
|
|
|