|
Hi everybody ! Little question:
I want to display a popup menu on the screen. This menu represent a list with selected channels (checked) and non-selected channels (unchecked). So, the user should be able to select/deselect a channel from the list. The problem is that these channels are dynamically created (so I don't know the number at design time).
So, how can I do this? (For example use just one single function to handle all events but how can I know wich item has been clicked??)
Any idea? Thanks
|
|
|
|
|
There's an example here of dynamically created popup menus.
HPS HwndSpy - GUI developer's aid to visually
locate and inspect windows. For the month of August
only, use coupon code CP-81239 for 30% off.
|
|
|
|
|
Thanks !!
I never heard before about ON_COMMAND_RANGE !!
This will help me a lot for doing what I want!
Thanks
|
|
|
|
|
Dear friends,
I’m beginner in Visual C++ 6.0 and I’m looking for advice and help.
I have English application which must be translated in other language like Rumanian, and Russian.
Can anybody advise from where I can get language classes for VC++6.0?
Thanks in advice,
Andrei Druta
|
|
|
|
|
Generally speaking, you'd do a few things;
(a) put translatable elements into your resources (menus, dialogs, strings)
(b) make separate language DLLs for each target
These have different names eg xxxEN.DLL (English), xxxES.DLL (Spanish), xxxIT.DLL (Italian), xxxDE.DLL (German), xxxFR.DLL (French), xxxRO.DLL (Rumanian), xxxRU.DLL (Russian) and they will contain translated resources
(b) Use language id to work out which DLL to use
(c) LoadLibrary the right DLL
(d) use AfxSetResourceHandle to specify which DLL to use
For number/date formats you can use GetLocaleInfo to retrieve country specific things like names of days/months etc.
Steve S
[This signature space available for rent]
|
|
|
|
|
Hi,
Can I use Unicode in my aplication for specific caracters?
If yes how can I include this in the string in my resource file like:
… code …
BEGIN
POPUP "&Fi"ş"ier"
BEGIN
MENUITEM "&Nou\tCtrl+N", ID_NEW
MENUITEM "&Deschide...\tCtrl+D", ID_OPEN
MENUITEM SEPARATOR
… Code …
Thanks.
Andrei Druta
|
|
|
|
|
You're on the right track with (b) but there is no need to have multiple files (unless you really need them). One of my company's products is used in over a dozen different countries. I create the English version, and translators from IBM create the others. In short, there is only one call to LoadLibrary() , and it's always for the same-named DLL.
|
|
|
|
|
Hi,
There is an excellent built in utility in VC++. here are the steps:
1) Create a uni-code file (use note-pad and save as uni-code for encoding option) save it with the extention *.mc
2) At the top of the file write the following code:
MessageIdTypedef=DWORD
LanguageNames=(
Russian=0x019:MSG00019
Hebrew=0x40d:MSG0040d
)
"Russian" and "Hebrew" are just for the example, search MSDN or developer sites (or use Visual Assist) to find out the code for the languages you need.
3) Each control that represents text (i.e a static text) must not be hard coded english, it should load its text dynamically using
m_pMyControl->SetWindowText(......) , m_pMyControl is the handler to the control.
Now i will explain how to fill the ...... in the SetWindowText
4) in the uni code file *.mc you will now add defines that will represent your desired text, add the following code in the *.mc file:
MessageId=
SymbolicName=IDSL_EDIT_BOX_CONTROL_MAIN_MESSAGE
Language=English
Your english text here
.
Language=Russian
bla bla in russian
.
Language=Hebrew
bla bla in hebrew
.
make sure you end the section with new line (press enter after the '.' at the end of the section otherwise it would compile correctly).
4) add the *.mc file to your project.
5) right click it and choose compile
6) notice after compilation a header file called Strings.h was generated.
7) now when ever you need the 'SetWindowText', make sure you have a
#include "Strings.h" and use the SetWindowText() method as follows:
USHORT uLang = 0x009; // English
// uLang = 0x019; // Russian
// uLang = 0x40d; // Hebrew
CString szMsg;
LPVOID lpMsgBuf;
DWORD n;
n = ::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_HMODULE |
FORMAT_MESSAGE_IGNORE_INSERTS,
AfxGetInstanceHandle(),
uID,
MAKELANGID(uLang , SUBLANG_DEFAULT),
(LPTSTR) &lpMsgBuf,
0,
NULL);
szMsg = (LPCTSTR)lpMsgBuf;
m_pMyControl->SetWindowText(szMsg);
now the control will show the proper text in the desired language....
hope this helps ya
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
Hi Yaron,
Can I use Unicode in my aplication for specific caracters?
If yes how can I include this in the string in my resource file like:
… code …
BEGIN
POPUP "&Fi"ş"ier"
BEGIN
MENUITEM "&Nou\tCtrl+N", ID_NEW
MENUITEM "&Deschide...\tCtrl+D", ID_OPEN
MENUITEM SEPARATOR
… Code …
Thanks.
Andrei Druta
|
|
|
|
|
Hi all
I try to draw on dialog surfaces use CDC class this my snippet of code
..OnPaint(...){
...
COLORREF cr = 0x00009900;
CPaintDC dc(this);
COLORREF orig_col = dc.GetPixel(5,5);
RECT rc = {0,0,100,100};
dc.FillSolidRect(&rc,cr);
COLORREF dest_col = dc.GetPixel(5,5);
}
I have result of that routines
orig_col = 0x00c0c0c0
dest_col = 0x00009800
more distinctly in binary view:
orig_col = 0000.0000.1100.0000.1100.0000.1100.0000
dest_col = 0000.0000.0000.0000.1001.1000.0000.0000
Points here for my convinet.
WHy its so ???
Or how i can fill my dialog surfaces so what when i get pixel from this surface after this action ,color of this pixel will be equal filled color.I.e. i wish what routine
COLORREF dest_col = dc.GetPixel(5,5); retrieved me
0x009900 value.
I know what when i fill any surface ,original color of one mixed with filled color and this mixed mode controlling by SetROP2 function but i cant realize MSDN suggestions this complicated for me.Please anybody can give me link or simplcity recognized of this trouble.
Thanks.
Sorry for bad eanglish.
|
|
|
|
|
I'm doing some code parsing with the example code in chapter 5 (nonblocking server) in "Network programming for Windows 2ed".
What I'm thoughtful about is if FD_WRITE is always sent to the client socket after FD_READ?
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
The FD_WRITE you'd have to receive when the write operation is completed I assume.
also see Q186245 "FIX: FD_WRITE Reposted After Every Send"
there's some description about that
|
|
|
|
|
geo_m wrote:
The FD_WRITE you'd have to receive when the write operation is completed I assume.
Aah, that could be true! But is FD_WRITE only sent in order to send pending data? I can't think of any other reason..
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
Hmm, there are many other reasons - if you have some traffic intensive application, this gives you some tool (although very simplistic) that you can somehow manage the data flow. e.g. you can imagine some voice over ip application, that can drop some data - reduce quality of stream - if the client is not able to receive data in some timely fashion.
I guess, there are a lot of other reasons
|
|
|
|
|
I believe you get FD_WRITE as soon as it is possible to send data on the socket. i.e., almost always...
--
Ich, du, sie, er, es, ihr, sie, Sie.
|
|
|
|
|
But when am I not ready for sending data then?
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
Chances are that you don't have to subscribe to the FD_WRITE event. Are your writes asynchronous? Yes, then you need FD_WRITE . If not, you don't - you check for readiness when you write data by testing the return value from Send .
--
Ich, du, sie, er, es, ihr, sie, Sie.
|
|
|
|
|
Jörgen Sigvardsson wrote:
you check for readiness when you write data by testing the return value from Send
So, if there is any pending data I send it away in the FD_WRITE handler or something?
Rickard Andersson
Here is my card, contact me later!
UIN: 50302279
Sonork: 37318
Interests: C++, ADO, SQL, Winsock, 0s and 1s
|
|
|
|
|
Yup, that's the general idea.
--
Ich, du, sie, er, es, ihr, sie, Sie.
|
|
|
|
|
I'm trying to write a program that should do the subj.
But I' not able to solve the problem, how can I filter all keyboard inputs?
I used SetWindowsHookEx, but anyway it didn't work.
1)I need to filter ALL input from Kbd & Mouse
2)I need to filter only defined inputs from Kbd & Mouse
Thanks a lot...
|
|
|
|
|
|
Hello everyone, I have a question about how to distribute the MFC DLLs with an application. I have read elsewhere how to distribute the MFC DLLs and which ones I need using Dependency Walker. I have code that properly installs the DLLs, which I believe are for all Windows versions, but I am unsure whether this is the best way to do it under Windows 2000 and XP. Instead of installing the DLLs into the system folder etc., should I put the DLLs in the application's folder along with a .local file? Or should I go ahead and install them into the system as usual for Win95/98/Me etc?
Also, I have Visual C++ Professional, and could statically link to the DLLs. Is there any disadvantage to statically linking to the DLLs, instead of dynamically and having to install the MFC DLLs? Are there times when I should dynamically link, and times I should statically link? (assuming I am running VC++ professional)?
|
|
|
|
|
At some point, redistributing the MFC DLLs is going to cause you and your customers problems. Putting them in the system directory is a crash waiting to happen. How do you know someone else won't come along, and replace your DLLs with another version? If you absolutely have to redistribute them, then put them in the app's directory. Otherwise, you should prepare yourself for customer reports like "I just installed your app, and now this other app doesn't work."
A far better approach is to statically link. This way, you know your app will work, regardless of what's on your customer's machine. And you also know you won't be impacting other apps. You're trading program size for program stability.
Your app will exist long after you have stopped working on it. Do you really want somebody to install your app 10 years from now, and step on some DLLs that another program relies on?
HPS HwndSpy - GUI developer's aid to visually
locate and inspect windows. For the month of August
only, use coupon code CP-81239 for 30% off.
|
|
|
|
|
HPSI wrote:
At some point, redistributing the MFC DLLs is going to cause you and your customers problems. Putting them in the system directory is a crash waiting to happen. How do you know someone else won't come along, and replace your DLLs with another version? If you absolutely have to redistribute them, then put them in the app's directory. Otherwise, you should prepare yourself for customer reports like "I just installed your app, and now this other app doesn't work."
Agreed!
|
|
|
|
|
Hi, I was wondering if there is "report viewer" sample somewhere out there... I need an MS-Access report viewer that does NOT need MS-Access installed on the machine. I understand that in earlier versions of Access, it was possible using the Access Developer's Kit (ADT), but I don't really know how to use it, or any other better and more modern kits - if any exist.
The scenario is this: I have a machine, holding an MS-Access database, that has a few reports in store. The user is using a DIFFERENT computer, and wants to remotely view the reports inside the MS-Access database, but the user doesn't have Access installed.
Thanks..
/=/=/=/=
Deus
/=/=/=/=
/=/=/=/=
Deus
/=/=/=/=
|
|
|
|
|