|
what does that mean...why are u being cryptic...i am coming here for answers not to have a philosophical discussion about MFC or any other language. I don't mean to be hostile but why are u being cryptic...do you have a solution if so please write it out. thanks, Lino
|
|
|
|
|
Anonymous wrote:
why are u being cryptic
Vs V jnf orvat pelcgvp, V jbhyq unir ercyvrq jvgu EBG-13!
Anonymous wrote:
i am coming here for answers not to have a philosophical discussion about MFC or any other language
There was nothing philosophical about the straightforward answer I gave you.
Anonymous wrote:
do you have a solution if so please write it out
I did everything (hint: use the OnInitDialog() method) but write the code for you. I did not think you wanted me to do all of your work!
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
very funny with the cryptic notes above...good one...
you are not doing all of the work i have done most of it...and that is what a message board is for. we learn by example and as much as I and everyone try to learn on our own sometimes yes we do need to see the code and that is OKAY too!
The bottom line is that I don't know how to do it and that's it.
If you are still interested in helping.
When I added the to TabOne and TabTwo Classes which are the dialogs and derived from CDialog for the tabs where the list control is. The wizard never included the OnInitDialog() method...do you know why that is?
Lino
|
|
|
|
|
Anonymous wrote:
The bottom line is that I don't know how to do it and that's it.
Based on the code you provided, I just assumed that you knew your way around MFC.
Anonymous wrote:
The wizard never included the OnInitDialog() method...do you know why that is?
Even though ClassWizard did not add the OnInitDialog() method for you, that does not mean you cannot add it later either manually or by invoking ClassWizard again. For the former, just add to the dialog's .h and .cpp files. For the latter, select the dialog's class in the Class name: combobox, select WM_INITDIALOG in the Messages: listbox, then click the Add Function button. Now select the newly added item in the Member functions: listbox and click the Edit Code button.
Does that help?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
that helps...i still have to figure out what goes in the OnInitDialog Box.
I figured that I needed to do something in the OnInitDialog Box but when the wizard didn't provide that method i guessed it wasn't necessary...
so at the risk of being blundt...what goes in the method?
thanks.
Lino
|
|
|
|
|
lino_i wrote:
what goes in the method?
The code that populates the list control.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
DavidCrow wrote:
The code that populates the list control.
David, now you are cryptic.
Well lino, In OnInitDialog you can do anything related to controls on the dialog. e.g., populating a list control (as is done here) or Creating an image list and bla bla. This is called just before OnPaint() method so it is advised to initialize your dialog controls here.
"Aerodynamically, the bumble bee shouldn't be able to fly, but the
bumble bee doesn't know it so it goes on flying anyway." - Mary Kay Ash
My Articles
|
|
|
|
|
I fail to see how your response is any "better" than mine. Given that he already has the code to populate the list control (in a method conveniently named Populate() ), it's simply a matter of moving that code to the OnInitDialog() method, or calling the method outright.
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
|
|
|
|
|
Sorry David if I hurt You. I guess he was having problems related to the sequence of calls like which is called when. So, I just tried to explain that a bit.
"Aerodynamically, the bumble bee shouldn't be able to fly, but the
bumble bee doesn't know it so it goes on flying anyway." - Mary Kay Ash
My Articles
|
|
|
|
|
Hello:
I'm looking for any type of menu subclassing without using the MFC classes, (the mayor part of the examples in the web uses it), i would like use them in an application what i'm developing, but it don't use the MFC( these classes don't likes me ), and is late like to be able the change, please if someone knows how do this, explain me
Thank you.
|
|
|
|
|
I have never done owner drawn menus myself, I don't believe they are necessary as the default menus work just fine. But the easiest way to do it is to look at the samples on this site. Sure most of them are written using MFC, but all you have to remember is that MFC is just a wrapper around the WIN32 API. Anything that can be done in MFC can be done in Win32, it's usually just harder in Win32.
So when you see CMenu::DrawItem , you have to handle the WM_DRAWITEM message, CMenu::MeasureItem , WM_MEASUREITEM , etc.
See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/resources/menus.asp
[^] for more information on the Win32 menu functions.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
I have a database with 15 fields in it. I am using to flexgrids and filling them manually by retrieving values from the database, record by record. I have placed the twogrids in two different classes derived from CRecordview, and are hooked to the database by a CRecordset dericed class,(again manually, not using bound data controls like ADO).These two view classes have their own CMDIChild derived window classes, and I am creating two different window frames,one for each, and placing them in my application as I can best possibly adjust. THe real trick comes here. In the first grid which I call an abstract grid, I am filling it up with only 8 of the 15 database fields. In the second grid which is in a different class and window, I have just one row, and I call it the detailed grid. This one row of the grid has to be filled with the database fields (All 15) only by a single record at a time. This single record is the one which I select by just clicking on the desired row in the first grid in the other class (Abstract grid). My actual question now is "Is there a way such that when I click on a certain row in the abstract grid, I capture the row number(=first field of the database = serial no = primary key)and call the LoadGrid function for the detailed grid in the other class and pass this captured row number to precisely fill the detailed grid with only that record whose serial no is same as the row number passed, and all this has to be accomplished by just a click on a row in the abstract grid?"
long live the dEvIL
|
|
|
|
|
Hello,
I'm quite irritated by the source and the MSDN Library for CCommandLineInfo. For the documentation of ParseParam it says:
The framework calls this function to parse/interpret individual parameters from the command line. The second version is only available in Unicode projects.<br />
<br />
virtual void ParseParam(<br />
const char* pszParam,<br />
BOOL bFlag,<br />
BOOL bLast<br />
);<br />
virtual void ParseParam(<br />
const TCHAR* pszParam, <br />
BOOL bFlag,<br />
BOOL bLast<br />
);
But in the header I find the following declaration:
virtual void ParseParam(const TCHAR* pszParam, BOOL bFlag, BOOL bLast);<br />
#ifdef _UNICODE<br />
virtual void ParseParam(const char* pszParam, BOOL bFlag, BOOL bLast);<br />
#endif
It is the other way round. Using a char* in Unicode projects and TCHAR* in multibyte projects???That doesn't make sense to me because then one declaration would be enough (TCHAR is actually a char in multibyte projects). But after debugging it with Visul C++ 7.1 it seemed that the code of the MFC doesn't belong to the used MFC library, because independent on wether I build Unicode (with _UNICODE and UNICODE defined) or not the ParseParam with TCHAR is always used. Is this correct?
I ask because I want to extend CCommandLineInfo for my own parameters and I don't know which declaration of ParseParam I have to derive. I will build my app as Unicode as well as multibyte string executable.
Could someone help me in this issue.
Thanks in advance Konrad
|
|
|
|
|
The documentation has it backwards, the first one (const char* ) is only available in unicode builds. AFAIK it is provided so that unicode apps can handle an ANSI string being passed in as the commandline. You will notice that the const TCHAR* version is available in both unicode and ansi builds.
I would override the const TCHAR* version.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it! Honoured as one of The Most Helpful Members of 2004
|
|
|
|
|
Thank you very much. That would be an explanation, but obviously it is not right. If you have a look at the code of CWinApp
void CWinApp::ParseCommandLine(CCommandLineInfo& rCmdInfo)<br />
{<br />
for (int i = 1; i < __argc; i++)<br />
{<br />
LPCTSTR pszParam = __targv[i];<br />
BOOL bFlag = FALSE;<br />
BOOL bLast = ((i + 1) == __argc);<br />
if (pszParam[0] == '-' || pszParam[0] == '/')<br />
{<br />
bFlag = TRUE;<br />
++pszParam;<br />
}<br />
rCmdInfo.ParseParam(pszParam, bFlag, bLast);<br />
}<br />
}
Here you can see that the parameter is wchar_t* for Unicode and char* for multibyte as parameter. So in every condition the TCHAR variant gets called! Do you have any explanation for this.
Regards
Konrad
|
|
|
|
|
WMI Blues
I am trying to set the NIC properties on a local machine using WMI. The code to do this is written in C++. I have a windows service and the code to set the NIC settings is handled in that service.
Problem:
I can get two of the properties always (does not matter which one like ip, default gateway or DNS) to set. However, on the third attempt to set any property, the connectServer () function fails (connect server function is required to get the namespace). I tried another experiment, when I restart my service after setting a property it will always work. The CoInitializeSecurity settings are exactly the same as the one in my MFC app. I am clueless at this point and I have a hunch that the code to set NIC settings residing in a service has got something to do with my program not running properly.
Note: I created a test MFC application that uses all my above functions and it works well all the time.
Any help will be appreciated
Thanks
newbee78
|
|
|
|
|
I have written a custom app wizard using C++ on .NET. It implements the IDTWizard interface. I've got the UI pretty stable. Now, I'm moving onto the template file generation. I'd like to use the IVcWizCtl interface, but, I can't seem to obtain this object. I've generated a wrapper class in my project for VcWizCtl using a typelib, but, I can't find a way to hook up to the object to use its methods. Has anyone else attempted to write a custom wizard using the IDTWizard interface? I could use some help resolving this.
Gort...Klaatu, Barada Nikto!
|
|
|
|
|
Hi...
Maybe I am oversimplifying this. I think there should be an easier and more intuitive way to package and deploy an MFC dialog app with .ocx activex controls in it other than InstallShield.
I contend that one should just be able to deliver the .ocx file, the app's .exe file and "register" the activeX controls using regsvr32.
I am using Visual Studio 6. The app runs great on the computer that I built it on but won't run anywhere else.
I have lost a lot of hair trying to get InstallShield (the version that comes with Visual Studio) to work for me and my method of deploying/registering doesn't work either.
Does anyone have an easy way to package my stuff so I can run it on another computer?
Thank you in advance
CG
|
|
|
|
|
|
Thanks Ravi....
From what I can see (and I haven't looked deeply into it) Inno Setup is script based too. Therein lies my problem with non-intuitivity (nice word eh?).
Thanks again
CG
|
|
|
|
|
|
|
Hi,
Does anyone know a way of dynamically changing the header title and sub title in a 97 style wizard? These are the 2 lines of text shown in the white section at the top of each page and are normally set during construction of each CPropertyPage like so:
<br />
m_psp.dwFlags |= PSP_DEFAULT|PSP_USEHEADERSUBTITLE|PSP_USEHEADERTITLE;<br />
m_psp.pszHeaderTitle = _T("Earlier Projects."); <br />
m_psp.pszHeaderSubTitle = _T("Choose a project from the list and click next to ...."); <br />
Specifically I would like to change the HeaderSubTitle at the point the page is being activated since the action that will happen next depends on an earlier selection that the user made.
Cheers,
Jason.
Melbourne. Australia.
modified 10-Jul-19 21:02pm.
|
|
|
|
|
I am pretty sure those controls are two static controls displaying the text.
If you use SPY++ you might be able to identify the control identifiers and then just use SetDlgItemText on them to change their text dynamically, as you desire.
|
|
|
|
|
there are two hidden member variable of CpropertyPage
m_strHeaderTitle := for changing the Header
m_strHeaderSubTitle := for chaning the Sub Header.
just try them out.
"I Think this Will Help"
[Vote One Here,.....]
<h5
alok gupta="" <br=""> visit me at http://www.thisisalok.tk
|
|
|
|