|
This could work:
void CCommsDlg::PostNcDestroy()
{
((CBuggycontrolappView*)m_pParent)->m_pDlgComms = NULL;
CDialog::PostNcDestroy();
delete this;
}
void CBuggycontrolappView::OnWindowCommunicationwindow()
{
if (!m_pDlgComms)
{
m_pDlgComms=new CCommsDlg(this);
}
else
m_pDlgComms->DestroyWindow();
}
void CBuggycontrolappView::OnUpdateWindowCommunicationwindow(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck((int)m_pDlgComms);
}
rechi
|
|
|
|
|
I have a problem with a CEdit control. The control in my application is used to enter parameters for my application. I am using a derived class CNumericEdit, to be able to enter numbers.
Some of my CEdit controls have a restricted value range. E.g. from 100 to 1000. The input of the user should be applied "on the fly". That means if the user enters a number it should take effect immediately _without_ confirming the change e.g. via a button click.
So I am using the ON_EN_CHANGE message.
But this message works too good for me
E.g. if the user tries to enter 150. I get a change event if the user starts to enter '1'. And that may be wrong because '1' may be out of range, but the user wants to enter 150.
So is there a possibilty to ignore change events as long as the user writes into the edit field. Or is there an event if the user has "finished" his input (some sort of input delay)?
I have tried to search for this problem in the internet and here in the archive, but it is difficult to define some useful search keys for the problem.
Thanks in advance.
|
|
|
|
|
Oh Boy,
I once had that kind of problem too. The only solution we could find worked, let's say most of the time.
I can't provide no source code, just the idea.
The solution was, when we encounter a change notification, we started a trigger, which was set to 750 milliseconds. Every change notification renewed the trigger. So the user had the possibilty to enter its text in a fairly slow way. When the time ran out, the trigger fired and the new content was processed.
As far as I can remember it took us (2 persons) two days to get it working as we wanted it to be. Well without coffee breaks and discussions one day.
There is a class CThreadTimer either here at CodeProject or at CodeGure that will help you in the effort.
Regards
G. Steudtel
|
|
|
|
|
It depends on how you distinguish the end of an input?
If you want it immediately, then it has to be after each character input, by definition.
Sure, you could put some sort of timing mechanism in, but this could be unpredictable, for instance taking a sip of coffee whilst entering a number...It would irritate me to have that in a form.
For my forms I only check when the edit control loses focus, or, say, when an Apply/OK is checked etc.
Debbie
|
|
|
|
|
Hello,
I have a long text to print in a MessageBox so I want it on several lines.
I tried something like:
MessageBox(NULL,"Test\n\rTest","",MB_OK);
but it doesn't work!! I want also the string to be loaded from a file so the 'escape sequences' will be in the string!
Thanks
|
|
|
|
|
It works wonderfully for me (also, you can omit the \r part). Test sample follows:
#include <windows.h>
int main()
{
MessageBox(NULL,"Test\nTest","",MB_OK);
return 0;
}
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
i tried MessageBox(NULL,"Test\n\rTest","",MB_OK); on my system(win2K) and it works fine???
|
|
|
|
|
hello,
try
MessageBox(NULL,"Test\r\nTest","",MB_OK);
i have try
MessageBox(NULL,"Test\n\rTest","",MB_OK);
on my system(XP) and it works fine ...
|
|
|
|
|
Thanks everybody !
Sorry, in fact I did not try the MessageBox(NULL,"Test\n\rTest","",MB_OK);
but loaded the string from a file !! So the \n is no more interpreted as an escape sequence but as normal text !!
So I think it will not be possible to have such an escape sequence in a text file! Or do you have any suggestion ??
|
|
|
|
|
This depends on the way you are "loading" your text. With a standard fopen(filename,"r") will throw the problem you mentioned, whereas fopen(filename,"rt") won't.
Check the fopen for this in the MSDN.
~RaGE();
|
|
|
|
|
Yes, thanks !
I'll take a look at that !!
|
|
|
|
|
I want to add some text in my progress bar on it's initilization. How to do so.
Reply me soon
|
|
|
|
|
I think somebody already posted an article about that on this site. Take a look at the MFC Control/Progress Bar.
|
|
|
|
|
If you're using MFC use SetPaneText otherwise send a SB_SETTEXT message.
|
|
|
|
|
Sorry, I incorrectly read "status bar".
|
|
|
|
|
Hello!
Is it possible to create an application on VC++.NET targeting the Palm OS?
If it is... how to do it?
I do not wan't to learn CodeWarrior (I don't have the time)
Thanks!!
|
|
|
|
|
I've created a remotecontrol service that runs on our PC's, we have a large network of dialups.
I then have an Authenticated session created against the PC from dialling in PC on IPC$ as an administration user. This user then sends a request to the named pipe, to launch a specific program.
This launched program, then does a NetView and finds other machines on it's network, then it will launch programs using the same technique on the other machines on it's network. The user that is dialing in, is the same on each machine, with the same username and password. The are not in a domain. CreateProcessAsUser using the Token that was given from the dialin authenticate.
Problem is.. When the program is launched remotely, it doesn't work against the other machines, only itself.
If you Logon to the machine, and run the program it's fine.
I can't see anything in the eventvwr to demonstrate that an error relating to security is occuring.
Does anyone have any ideas what I might be missing for my remote user?
|
|
|
|
|
I am writing a program which runs just fine in the computer where I am developing it. The OS is Windows XP. Since I wanted someone else to see my program I tried to run it on an old laptop that I have which runs on Windows 95. Unfortunately I got an error generated with _com_error which says:
Error Number: 0x80040154
Error Message: Class not registered.
I fixed this error by installing DCom95 and MDAC 2.5 Service pack 3 because they were required for windows 95.
However I get another error which says:
Error Number: 0x80004002
Error Message: No such interface supported.
This is part of the code
// Initialize the COM environment
if( FAILED( hr = ::CoInitialize( NULL ) ) )
{
_com_issue_error( hr );
}
// Create a connection with the database
// THE FIRST TIME THE PROGRAM WOULD FAIL RIGHT HERE
if( FAILED( hr = m_pConn.CreateInstance( __uuidof( Connection ) ) ) )
{
_com_issue_error( hr );
} // end if
m_pConn->Open(L"Provider=Microsoft.Jet.OLEDB.3.0;\
Data Source=SomeDbFile.mdb;",
L"", L"", adOpenUnspecified );
// NOW IT FAILS RIGHT HERE
// Create an instance of Command
if( FAILED( hr = m_pCmd.CreateInstance( __uuidof( Command ) ) ) )
{
_com_issue_error( hr );
} // end if
Besides installing DCOM95 and MDAC Is there anything that I can do to to make the program run in Windows 95?
none
|
|
|
|
|
what's the type of the m_pCmd variable? it is possible that you are using some interface which is supported in later versions of ADO library (e.g 2.7), since the code is developed on WinXP.
also, IIRC, there were some changes in interface IIDs between the versions of ADO.
which ADO tlb are you #importing?
|
|
|
|
|
This is the declaration for the m_pCmd variable:
_CommandPtr m_pCmd;
The ActiveX component I added to my project is:
Microsoft ADO Data Control, version 6.0 (OLEDB).lnk
To tell you the truth I don't have any tlb files, but only tlh and tli.
If what you say is right then I need to install ADO 2.7 on Windows 95 machines. According to Microsoft ADO 2.7 runs on Windows 98 and above. Now I could try to install ADO 2.7 on Win95 and see how it works. Thank you very much for your help so far.
none
|
|
|
|
|
these tlh/tli files are the result of #import directive. you probably have something like #import "msado15.dll" (i thought it was msado15.tlb, my error). i remember having similar problems with app i wrote 2 years ago for my company, but we solved them by installing the same version of ADO on all machines.
also, you can use OleViewer utility to check the contents of the ADO library on both systems, and interface IIDs.
|
|
|
|
|
You are right, using OleViewer I have ADO 2.7 on XP. I just don't know how to read the interface IDDs. On the other hand when you say use OleViewer on both systems, are you implying that I need to have VC++ 6.0 installed on Win95 because that is not my intention? The computer with Win95 is just a test site for the release version of the program. I know that on Windows 95 I have ADO 2.5 because I downloaded it from Microsoft a couple of days ago. So what you're saying is, that no matter what, I need to install ADO 2.7. The thing is that ADO 2.7 won't work on Windows 95.
Thank you again for taking the time to help me.
none
|
|
|
|
|
to read IIDs just find the ADO typelib in Type Library section of OleViewer, right click on it and select "view...". A new window will popup and in the left side of that window click the appropriate interface. in the right side pane you will see the declaration of the interface, including its UUID. you don't have to install VC++ on Win95, just copy OleView.exe
you can try installing ADO 2.5 on WinXP, and do your development against that version of ADO, but i'm not sure if this will introduce some unwanted side-effects, since i don't have that much experience with ADO.
hope this helps
|
|
|
|
|
Thank you so much Zed. You have been a great help and you have no idea how much I appreciate it.
If nothing works I guess my final solution will be not to provide a Windows 95 version. I still have to give it a try to make it work.
By the way, yesterday I found a program from microsoft which allows you to check the ADO installed in your system. It is called ComCheck and you can find it on http://download.microsoft.com/download/5/3/4/534afa5c-71d4-4dab-bce8-afd65f8f8de5/cc.exe
Just in case you ever need it.
I still used the OleViewer.
none
|
|
|
|
|
i'm glad you found some of the information useful.
you can also check microsoft's ADO newsgroups, i'm sure you will found someone who had same problems with ADO versions, and hopefully, a solution for it.
thanks for advice about ComCheck
|
|
|
|