|
Hi,
I am working on an MDI application and derived a class CDrawView from CFormView because I need the inherent dialog template for displaying an ActiveX control. I go into the dialog resource, and insert an ActiveX control then add a member variable for it in the class wizard. This automatically adds the DDX_Control line to DoDataExchange.
void CDrawView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDrawView)
DDX_Control(pDX, IDC_NTGRAPHCTRL1, m_graphCtrl);
//}}AFX_DATA_MAP
}
However, no matter what ActiveX control I insert, it always indicates that hWndCtrl == NULL.
HWND CDataExchange::PrepareCtrl(int nIDC)
{
ASSERT(nIDC != 0);
ASSERT(nIDC != -1); // not allowed
HWND hWndCtrl;
m_pDlgWnd->GetDlgItem(nIDC, &hWndCtrl);
if (hWndCtrl == NULL)
{
TRACE1("Error: no data exchange control with ID 0x%04X.\n", nIDC);
ASSERT(FALSE);
AfxThrowNotSupportedException();
}
m_hWndLastControl = hWndCtrl;
m_bEditLastControl = FALSE; // not an edit item by default
ASSERT(hWndCtrl != NULL); // never return NULL handle
return hWndCtrl;
}
Anyone have any ideas why it might be doing this? Perhaps I'm not doing this properly. This control works in a regular dialog.
Thanks in advance!
|
|
|
|
|
Hi,
Just a bit of important information which I didn't think was relevant before.
My app also uses a COM server for some services. In my MFC app class's InitInstance I set the thread model. When I comment this out the ActiveX controls seem to work, but then I can't connect to the COM server.
BOOL CNFITGuiApp::InitInstance()
{
::CoInitializeEx(NULL, COINIT_MULTITHREADED);
.........
I understand that ActiveX and COM are very related. And this may be why commenting the threading model assignment will work.
Thanks.
|
|
|
|
|
Hello can somebody please provide me an example written in any language(preferably C++) that shows how to use overlay mode? Like winamp's AVS plugin does. Thanks!
|
|
|
|
|
char SystemDir[255] = {0};
GetSystemDirectory(SystemDir, sizeof(SystemDir));
|
|
|
|
|
Can someone please tell me why the following code is causing an access violation. I am using WTL 7.1
int DrawImage()
{
using namespace Gdiplus;
GdiplusStartupInput gdiplusStartupInput;
ULONG_PTR gdiplusToken;
WCHAR ImgFile[] = L"C:\\test\\test.bmp";
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
Image* img = new Image(ImgFile, 0);
Font myFont(L"Arial", 16);
PointF origin(0.0f, 0.0f);
SolidBrush blackBrush(Color(255, 0, 0, 0));
WCHAR string[] = L"This is a test";
Graphics g(img);
g.DrawString(string, -1 , &myFont, origin, &blackBrush);
// Get the class identifier for the BMP encoder.
CLSID bmpClsid;
ZeroMemory(&bmpClsid, sizeof(bmpClsid));
GetEncoderClsid(L"image/bmp", &bmpClsid);
img->Save(L"C:\\test\\test1.bmp", &bmpClsid);
GdiplusShutdown(gdiplusToken);
return 0;
}
int CWTLTestView::GetEncoderClsid(const WCHAR* format, CLSID* pClsid)
{
unsigned int num = 0; // number of image encoders
unsigned int size = 0; // size of the image encoder array in bytes
Gdiplus::GetImageEncodersSize(&num, &size);
if(size == 0)return -1;
Gdiplus::ImageCodecInfo* imageCodecInfo = new Gdiplus::ImageCodecInfo[size];
Gdiplus::GetImageEncoders(num, size, imageCodecInfo);
for(unsigned int i = 0; i < num; ++i)
{
if( wcscmp(imageCodecInfo[i].MimeType, format) == 0 )
{
*pClsid = imageCodecInfo[i].Clsid;
delete [] imageCodecInfo ;
return i;
}
}
delete [] imageCodecInfo;
return -1;
}
Forever Developing
|
|
|
|
|
What line is causing the AV?
|
|
|
|
|
After it leaves the the function. It happens after the function exits. The debugger breaks in
gdiplusgraphics.h
~Graphics()
{
DllExports::GdipDeleteGraphics(nativeGraphics);
}
Thanks Nick
Forever Developing
|
|
|
|
|
Fixed my own problem need to free the Graphics, Font, Brush object before calling shutdown.
Forever Developing
|
|
|
|
|
I'm using Visual C++.net 2002. How do I setup up the file path so that the program knows to go to the system32 folder for any Windows OS. Right now I'm tell it where to look for my OS "Win 2000 pro". But if I install it on another machine with XP. Folder paths are different. Thanks for any help.
("C:\\WINNT\\system32\\ARMSettings.ini");
|
|
|
|
|
Try
System.Environment.GetFolderPath(SpecialFolder.System)
Forever Developing
|
|
|
|
|
|
Hello guys/girls
I have one project that will appritiate coments and tips from you how to make it.This project is for gaining extra points for my Security course.
The project is made of 2 parts.
First part to make a script in perl (cgi) and upload to the website ,where the scripts only has one field asking for password (only 3 digits), if the correct password is entered then it gives you success and failed if you don't enter the correct password.
I have made that script and uploaded but the hardest part is comming ...
The second part of the project is to make a VC++ application that will connect to that site and will run all 1000 combination (000-999) and gives me back the correct password(where the site will return success).I know that this is not so hard to do it but i am newbie in windows programming.
I have been studing only C++ (not VC++) and i will appritiate some guideness and tips/tutorials to get the extra points on my course !
Thanks in advance
Two beer or not two beer
|
|
|
|
|
You can use this[^] article to create a little C++ class that will connect to the site and try to login with a user-specified password. It's a simple matter of exercising the object in a loop to cover all 1000 combinations.
/ravi
My new year's resolution: 2048 x 1536
Home | Articles | Freeware | Music
ravib@ravib.com
|
|
|
|
|
Hi everyone,
Howto disble Ctrl+Alt+Supr in Win2000 / XP? or block the desktop window and Start Button...
Thanks in advance.
Ivan Cachicatari
www.latindevelopers.com
|
|
|
|
|
You can install a system wide keyboard hook?
Forever Developing
|
|
|
|
|
|
#1YOu can go for MSGina replacement
serach for Xgina on Codeproject
#2for keyboard hooks
search for the hooks on codeprojects
you can find tons on information on this
-----------------------------
"I Think It will Work"
Formerly Known As "Alok The Programmer" at CP
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
|
A question came up on the VCF forums that I am at a loss to answer. Someone wants to display greek letters, specifically unicode char \x03b5. On at least a number of NT (win2k and winxp) systems this displays OK. We store the data as UTF16 data on both Win9x and NT. On Win9x systems we convert down to ascii. Is there a correct way to do this to get it to display correctly on Win9x? Or is it just not possible?
Should anyone care the full forum posting is here[^] if you want to get a better context of the question.
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
SELECT * FROM User WHERE Clue > 0
0 rows returned
|
|
|
|
|
Not sure if this helps. But in Win9X, there are two issues - you have to convert it down to ASCII (using WideToMultiByte or whatever the function is), *and* make sure you are displaying it in a font that supports that character. So you'll have to scour the fonts for one that supports the Greek charset and go from there.
This I know will work if you are running on a Greek system. If you are running on an English system and want to display Greek characters, I'm not sure this works (althoguh I think it will.)
An expert is somebody who learns more and more about less and less, until he knows absolutely everything about nothing.
|
|
|
|
|
OK well I am definitely doing both of your suggestions. The question is whether I am doing the *right* thing.
For WideToMultiByte I am using the CP_ACP code page. For the font char set I base that on the current thread locale. So if that's english then I use the default char set. If it's a greek locale then I use the GREEK_CHARSET for the font.
Maybe I need to have the guy try on both english and Greek locales and see what happens.
¡El diablo está en mis pantalones! ¡Mire, mire!
Real Mentats use only 100% pure, unfooled around with Sapho Juice(tm)!
SELECT * FROM User WHERE Clue > 0
0 rows returned
|
|
|
|
|
Jim,
Check out the documentation for MSLU (It is a library and DLL to add Unicode support to 9x). I don't remember the specifics, but I think that even with MSLU you can not display a mixture of code pages. Thus if they don't have the Greek code page loaded, they are SOL.
http://seba.studentenweb.org/thesis/papers/mslu.pdf
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Please show code.
Especially interesting:
is it possible to do it by ADOX?
I tried but did not found how...
Thanks.
|
|
|
|
|
You link your db, install it in odbc and then use a SQL command called through a string
|
|
|
|
|
I need a tree control that let me identify a node by index. This index must bea CString Type and not visible.
CTreeCtrl let me identify with a Int Type
Any suggestion?
Thanks in advance
|
|
|
|