|
Hola !
HE he, si creo que si nos ponemos a hablar en Español igual Nish o otro se cabrean , así que aquí va mi inglés potajero...
Yes, the thing is that I have a system made to update data automatically when you press tab or whatever
http://www.codeproject.com/dialog/killfocus.asp
It saved me a lot of boring work, ... but... If I use that on a Non modal Property Page I got a problem... when you press tab on the last control the focus goes to the parent and I cannot distinguish very well the event that happened, the good thing would be that it goes again to the first tab order control again.
Is there some possibility to do that ?
Gracias Joaquin !
Braulio
|
|
|
|
|
I must confess I've not completely caught your point, so I will guess anyway
So your problem is that your property page loses control when the user press on the tab (control is taken over by the property sheet) and you'd like the property page to have an opportunity to retain control? If so, today some folks have had a similar discussion here, and seems like WM_NCACTIVATE is the message you should handle on your propery pages to determine when control goes elsewhere.
Hope it helps. Don't mind asking again if this is not what you were after.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanks !,
I´m gonna try the OnActive thing, but I would like to do it generic, do you know anyway to get the first control that have a tab stop ? ( just a function named like... "FirstTabOrderCtrl()" or something like that
Thanks again, Bye !
Braulio
|
|
|
|
|
You know what? Seems like calling SetFocus on the property page itself yields control to its first control (with respect to tab order). At least I've just tried it with a CDialog and it works.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanks good tip !
The only problem is that OnActive is not called when the user presses the tab because it already has the focus ( crazy stuff... ).
Hasta luego Joaquin !, me rindo por hoy mañana me pondré de nuevo, con la cabeza más fresca
Un saludo
Braulio
|
|
|
|
|
Has anyone seen this error under windows xp before? I have a very simple application using a list control.. when the app is first launched I get the error "HLVDD.DLL hardlock virtual device failed initialization" What is this?
Thanks,
Rob
|
|
|
|
|
|
1. Make sure the class is only defined in one place (header file).
2. Make sure the contents of the header file are only included once. Use guard macros to prevent that:
#ifndef __STOCK_H__
#define __STOCK_H__
class Stock
{
...
};
#endif // __STOCK_H__
Regards,
Alvaro
|
|
|
|
|
Hello..
I want to know something! In Visual C++ also can use C code, but can or not C code in same project call C++ function??
like this, my C code is in what.c and I want to call function in loginDlg.C++, the function name is CLoginDLg...
i try do this in file what.c
CLoginDlg dlg;
dlg.DoModal();
but this error appear when i compile it
error C2065: 'CLoginDlg' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'dlg'
error C2065: 'dlg' : undeclared identifier
error C2224: left of '.DoModal' must have struct/union type
anybody can help me.. or i do wrong!!??
|
|
|
|
|
If you post some code perhaps we can help you.
Simon
C++: Only friends can see your private parts.
Sonork ID 100.10024
|
|
|
|
|
where to i post my code in this forum??
|
|
|
|
|
You can't call C++ code from C the way you're trying it. CLoginDlg is a class which C does not recognize.
What you can do is wrap that code inside a global "C"-style function inside your C++ file:
extern "C" void OpenLoginDlg()
{
CLoginDlg dlg;
dlg.DoModal();
}
Then you can call OpenLoginDlg in your C code.
Regards,
Alvaro
|
|
|
|
|
never mind for login dialog...
but i want you to solve this problem... because this i my main problem........
this is my C code
case IDC_OK:
database db; //this i call function from c++ file
db.Open(CRecordset::dynaset,"password);
while(!db.IsEOF())
{
if(db.m_userID == IDC_USER_NAME)
{
if(db.m_password == IDC_PASSWORD)
{
ShellExecute (NULL, "open", "d:\\games\\Same.exe",NULL,NULL,SW_SHOWNA);
exit(0);
}
else
{
AfxMessageBox("Incorrect password!");
m_word="";
UpdateData(false);
return;
}
}
loginConn.MoveNext();
}
but this error appear
error C2065: 'database' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'db'
error C2065: 'db' : undeclared identifier
error C2224: left of '.Open' must have struct/union typeerror C2065: 'CRecordset' : undeclared identifier
error C2143: syntax error : missing ')' before ':'
|
|
|
|
|
|
Do not panic
Try this:- close all open files in your Visual Studio, delete your .c files from the project, go to the Windows Explorer, locate those files, change the extension to .cpp and add them back to the project. Now, hopefully, your formerly C modules are C++.
- whenever you get some "undeclared identifier" compiler error, try to locate the .h header file for the class you're trying to use and insert the corresponding
#include . With a little luck, this will help you advance a little further.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Sounds like the best help for you would be to go back to school or re-read the books.
|
|
|
|
|
i do as you write...
but when i compile... it have this warning
want.c(1957) : warning C4013: 'OpenLoginDlg' undefined; assuming extern returning int
and i try to build exe... it appear Microsoft Visual C++ Debug Library... so what must i do now??
|
|
|
|
|
hi all;
I am writting an MFC app using the Doc/View and MDI. My problem is my additional menu bar was grayed and can not click but i dont set it as grayed. And the original menu bar was appear and can click on it. So how to solve this problem.
|
|
|
|
|
When you add new menu item to SDI/MDI MFC application it is disabled in run-time untill you write message handler for this item.
|
|
|
|
|
Maybe it has to do with command update handlers. Have you ON_COMMAND_UPDATE_UI handlers for the new commands in the additional menu bar? (I'm asuming you already have ON_COMMAND handlers for them)
Also you might find interesting to have a look at the flag <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmfc98/html/_mfc_cframewnd.3a3a.m_bautomenuenable.asp">CFrameWnd::m_bAutoMenuEnable</a> , which gives you control over this kind of things.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
thanks...
it's work, but can you tell me how to appear the dialog box after we click the menu bar?????
|
|
|
|
|
If I'm understanding your question, you should write something like this on your command handler:
CYourDialog dlg;
dlg.DoModal();
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
i do this
void CMainFrame::OnLogin()
{
login dlg;
dlg.DoModal();
}
but this error appear!!
error C2065: 'login' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'dlg'
error C2065: 'dlg' : undeclared identifier
error C2228: left of '.DoModal' must have class/struct/union type
|
|
|
|
|
mmmh... What is that login ? It is a CDialog class, right? Then in your project you'll see a .cpp and a .h (possibly login.h ) files associated with the class. Include this line at the beggining of the file where the error is:
#include "login.h" You know, this is pretty basic C/C++ stuff. Maybe you should spend some time reading some C/C++ primer to get the fundamentals learnt. Do a search on Internet, there must be plenty of tutorials.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
thanks...
can you help me to solve my above problem... (c and visual c++)
|
|
|
|