|
thx
"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!
|
|
|
|
|
I have a question to all you guys,
am working on a Mfc Dialog application.The aim is to display properties of 4 different objects.
Decided to use a Tab Control,so that each tab identifying the properties to display for a object(so 4 tabs for 4 Objects.)
So Now My questions are starting
In Each Tab as I said ,want to fill the properties of a partcular object in a control.
In the control,I need to have 2 header columns.
The First column contains always constant labels.
In the second column,Depending on the left label,need to add a combobox,checkbox,Ediable Text box etc...
[1]I decided to use the ListView Control.How Can I add controls to the listview control,for each item
[2] How to change the background colour of the caption label in a CDialog object.
[3] How to change the font & Tab background colour of a particular tab in a TabControl
Appreciate it if someone could tell which concrete member function to use,showing with a code snippet.
Thanks..
|
|
|
|
|
Maybe use Chris Maunders MFC Grid Control (available from CodeProject), one instance in each of your tabs.
It already does all this work for you.
Otherwise, look at what it does, as a starting point for the work you are about to duplicate.
|
|
|
|
|
Have already progressed with the ClistCtrl from Mfc & Now I need to add combo boxes ,test boxes etc to the second coulmn od the list control.
How can I achieve that..
Can I use the "SetItemData" Function or should I use any other variation...
|
|
|
|
|
What is typically done is a data set is tracked for each element in the list.
This data set can be a data structure, pointer to a class, whatever you want. It retains the user's item selection and generally what you would want to use in that cell, like some flag for combo box, list box, edit field, etc.
When the user 'selects' one of the cells, you create a window, on the fly, that covers the cell of interest. The focus is set to that window (the combo box, list box, or whatever) and the user makes a selection from it.
You then remove the small control window, then 'draw' in the selction into the item - if it is all text you want, that makes it easier, but some grids have bitmaps or other items, like progress bars and such - custom drawing stuff.
It is impractical to keep a separate window for every possible cell in a grid, so you only have a 'floating' child control for the cell currently being edited. Some people try to assign and create a seaprate control window for each cell int he grid, this limits how many rows and columns they can handle, as they lose ability to create even more windows.
Other than that, like I said, you are sort of duplicating the MFC grid control's efforts, so you might look to it for some examples.
|
|
|
|
|
Where can I find this Chris Maunders MFC Grid Control.
Could u provide a link.
In my Mfc control list,I can't see a Grid Control ...
What should I do...
|
|
|
|
|
It is available on this very same website.
http://www.codeproject.com/miscctrl/gridctrl.asp
|
|
|
|
|
|
How can I find out the extension of the file pointed to by a shortcut? IShellLink::Resolve can do that, but it has a lot of overhead.
Basically, I'm going through the contents of a directory and only showing files of certain types, but I also want to show shortcuts which point to files of those certain types.
|
|
|
|
|
Nevermind, figured it out: I use the normal COM code to find a shortcut's target, and just omit IShellLink::Resolve .
|
|
|
|
|
Hi all
i'm new to VC6++
I need to start work on Philips/MS Speech APIs
First let me know some self teaching good book on VC6++
Secondly how i can developed COM/Wrrapper For Philips VC6 API to be used in .NET envirnoment
just like we use MS word library.
Either i have to work on ATL Com Component project or on some else
Thansk in Advance
Regards
|
|
|
|
|
>> i'm new to VC6++
Are you new to C++ or just the Microsoft Environment?
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
Presently i'm working in .NET envirnoment and have a good Idead of Turbo C++ 3.0 and C language and JAVA too.
but as i started wor on speech Technologies specialy Philips , which has raw VisualC++ 6 API, So either i need to program it in VC or a way to create reusable component of whole API ewhich includes .lib,.h and dll files?
To get Alll let me know good book to start on developing COM component of API as we had COM component of MS WOrd
thanks
|
|
|
|
|
I tried to hide a window B, and active window A, however, even though the dialog is hidden, the menubar belongs to B is still active, any solution for this? Thanks a lot!
|
|
|
|
|
Some questions to clarify the issue..
How do you mean the menubar is active when you say the dialog is hidden?
How have you created and hidden the dialog and how have you attached the menu?
|
|
|
|
|
Hi i'm trying to load a bitmap in a menu. I'm using this code, in the create function of the mainframe, but i'm not succesful:
[CODE]bmp.LoadBitmap(IDB_BITMAP2);
this->GetMenu()->GetSubMenu(2)->SetMenuItemBitmaps(1,MF_BYPOSITION,&bmp,&bmp);
[/CODE]
In the menu properties, the item number one, is checked.
what am i doing wrong?
thanks
|
|
|
|
|
Have you cross-checked your code against any of the multitude of examples on http://www.codeproject.com/menu/[^]. If the code is ok, have you tried adding some error checking to see if any of the calls fails?
|
|
|
|
|
>> struct fileHdr has member (first one) as a char* and its set to "ABCD".
So you are writing the value of the pointer to the file NOT the charcters. So the reading is not the problem it is the writing. Did you look at the file in Notepad to see if the "ABCD" was in there?
"No matter where you go, there your are." - Buckaroo Banzai
-pete
|
|
|
|
|
A named pipe is a named, one-way or duplex pipe for communication between the pipe server and one or more pipe clients. All instances of a named pipe share the same pipe name, but each instance has its own buffers and handles, and provides a separate conduit for client-server communication. The use of instances enables multiple pipe clients to use the same named pipe simultaneously.
Can anyone point me in the right direction for creating multiple named pipe of the same name and using multiple clients over it. i.e how do a client distinguish which pipe to connect if we have two pipes created in two process with the same name.
|
|
|
|
|
One the Win32 platform, in theory instanses of the named pipe could be distinguished via handles. One the UNIX platform, consider, for example, a file descriptor.
Kuphryn
|
|
|
|
|
I am sorry but if two different processes create a named pipe with the same name how can the client differ in the two? A client would not have handles to any.
|
|
|
|
|
One possible solution is via process ID or the name of the window?
Kuphryn
|
|
|
|
|
What you're planning is not possible. Two different pipe server processes can not create a named pipe with the same name.
From MSDN:
Each named pipe has a unique name that distinguishes it from other named pipes in the system's list of named objects.
The way named pipes work is pretty straight-forward. Firstly, you have a pipe server process that is responsible for creating pipe instances. The function CreateNamedPipe creates either the first instance of a named pipe, or a new instances of an existing pipe. Like MSDN states, each of these instances have their own buffers and handles. When the first instance of the pipe is created, this pipe-name becomes unique to this process. No other pipe server process can create a named pipe with the same name. Attempting such would result in an error code (ERROR_BAD_PIPE or ERROR_INVALID_HANDLE). After the pipe instance is created, ConnectNamedPipe prepares this created pipe instance for client connections. Each instance of a named pipe MUST be prepared by the server before a connection from a client is possible.
This server process can then, as it sees fit, create and prepare more instances of the same pipe or instances of differently-named pipes. Clients can then use CallNamedPipe to connect, transact and disconnect from an (undetermined) instance of the named pipe. If the server has run out of free pipe instances, an error value is returned (ERROR_PIPE_BUSY), or optionally, the function can wait until a pipe instance becomes available. The clients can not distinguish which pipe instance they are connecting to. All instances of a named pipe are similar by outside aspects, i.e. they provide precisely the similar type of services. If you need a type A pipe for one client and type B pipe for another client, you must create two named pipes, which both have a seperate unique name.
See the idea ? Server creates and initializes named pipe instances (one or more instances of the same named pipe, and/or one or more instances of several named pipes), and clients request an access to these instances for data transfer, identifying the requested named pipe by it's name. But the clients can not determine the specific instance of the pipe they wish to connect to. This is determined by the server.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
Thanks for the response. I will see how I can work this out......
Can you please clarify what nDefaultTimeOut parameter stands for in CreateNamedPipe call and what is its connection to WaitNamedPipe etc call(s) if any.
|
|
|
|
|
This parameter of the call specifies the time, in milliseconds, that a client connecting to the pipe will wait for when no free pipe instances are available. You can determine how long the client side function will wait before issuing a time-out. It can be a certain time in milliseconds, the default wait time specified by the server, or it can wait forever.
Here, the default wait time specified by the server is the key phrase. This time period is determined by the nDefaultTimeOut parameter. Each pipe instance created by CreateNamedPipe must specify the same time-out value. This value is supplied only so that clients, which use WaitNamedPipe or CallNamedPipe functions to connect to the named pipe, know how long they should wait, by default, before issuing a time-out error.
If, during this time period, a pipe instance becomes available (the server creates a new instance or some other client disconnects from one pipe instance), then the client-side pipe function will connect to this available pipe.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|