|
Hi I am creating ownerdraw combobox, when I am calling create function in my CCstomCombox which is derived from CComboBox, its giving Assertion error. After debuging I got the error in below function:
My Create function is :
this->Create(WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|CBS_HASSTRINGS |CBS_DROPDOWNLIST|CBS_OWNERDRAWFIXED,rect,pWnd,nID);
In line :
(ASSERT(pWnd->m_hWnd == NULL); // only do once)
In function:
void AFXAPI AfxHookWindowCreate(CWnd* pWnd)
{
_AFX_THREAD_STATE* pThreadState = _afxThreadState.GetData();
if (pThreadState->m_pWndInit == pWnd)
return;
if (pThreadState->m_hHookOldCbtFilter == NULL)
{
pThreadState->m_hHookOldCbtFilter = ::SetWindowsHookEx(WH_CBT,
_AfxCbtFilterHook, NULL, ::GetCurrentThreadId());
if (pThreadState->m_hHookOldCbtFilter == NULL)
AfxThrowMemoryException();
}
ASSERT(pThreadState->m_hHookOldCbtFilter != NULL);
ASSERT(pWnd != NULL);
ASSERT(pWnd->m_hWnd == NULL); // only do once
ASSERT(pThreadState->m_pWndInit == NULL); // hook not already in progress
pThreadState->m_pWndInit = pWnd;
}
Please help me to come out from this.
Thanks..
|
|
|
|
|
you are creating the box one more time. If it is from a rc file, you dont need to call the constructor.
Press F1 for help or google it.
Greetings from Germany
|
|
|
|
|
No man I m not creating any combobox using resource..
|
|
|
|
|
When you use a control in a dialogue box AND describe it in the resource template you don't create it. You only use CWnd::Create (or overidden version) when you're creating the control outside of a dialogue box.
So if you're using a dialogue box instead of calling Create set up the resource template and subclass the control using DDX_Control in DoDataExchange.
Cheers,
Ash
PS: Just seen you response to Karsten, ignore this reply except for reference!
PPS: It looks like you've already created the window when you called create. You're not calling it twice by mistake by any chance?
|
|
|
|
|
|
A quick way would be running CL.EXE form the Visual Studio 2005 Command Prompt.
By chance here I've the 2005: it gives "Version 14.00.50727.42"
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
_MSC_VER is your friend - it's a preprocessor define.
Cheers,
Ash
|
|
|
|
|
|
Raghuveer D wrote: How to know the C++ version in Visual Studio 2005, rather VC++.
Please do not remove questions, especially when they have been answered. This information may be useful to other readers of the forum.
It's time for a new signature.
|
|
|
|
|
|
Hi all i have created a Windows CE for Pocket PC 2003 application, Now i want create a Library.
How to Create a Library of Existing Project and Source Code ?.
Thanks in Advance.
|
|
|
|
|
Assuming you need a DLL or LIB.
Create a new project using Visual Studio: File->New->Project->Smart Device->Win32 Smart Device Project.
Then select the platform and in the Project Settings page of the wizard there is an option to Select DLL or LIB.
|
|
|
|
|
Hi i have already created project , i need to crete Library of that Existing project.How i dont know, for your informaiotn it will open new empty project.
|
|
|
|
|
There's no (AFAIK) 'Covert To Library' wizard, so you have to follow the suggested steps: create a DLL (or LIB ) project and then add (with appropriate modification) the existing sources.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
There's no easy way to "convert" an application to a library. These are two different things.
The only way is to create a new library project, and add to it the source files you want to include in your library. Of course if you want to bring functionalities that were present in the GUI classes (like in View or Document if you use a SDI application), that will require more work.
But first, you need to understand what a library is and how it is used, because it seems you are a bit confused about it.
What are you trying to achieve exactly ? Converting a full application into a library doesn't make sense at all.
|
|
|
|
|
Hi!
I've to read from an already existing text file. I've writen the following code.
if(countryCode == 0 && idBtn == 0)
{
ifstream myfile;
char* line = " ";
std::string filename = "E://Work//Data//playerdata.txt";
myfile.open(filename.c_str(),ios_base::in);
fstream test;
test.open("E://Work//Data//test.txt", ios_base::out);
if(!myfile.is_open())
{
printf("Opening File %s Failed!",filename.c_str());
}
while(!myfile.eof())
{
myfile.read(line, 1);
test.write(line, 150);
}
myfile.close();
test.close();
pManager->getGUIEnvironment()->addStaticText(L"Sachin's Details", rect<s32>(20, 50, 180, 80),false, true, m_pTestTab, -1, true);
}
This prints only this statement "Opening File Failed!". Why is it printing like that?
|
|
|
|
|
Try using backslashes (\\) instead of forward slashes (//).
|
|
|
|
|
Hi!
Using backslash also produces the same reult. What to do?
|
|
|
|
|
Are you able to manually open the file and view its contents?
|
|
|
|
|
Yes. It contains a 55 row of numbers separated by commas. I produce first 5 rows of my file's content.
0,79,76,6,2222,126,1,15,23,88,88,6,14,"3/9",0
1,79,76,6,2222,126,1,15,23,88,88,6,14,"3/9",0
2,79,76,6,2222,126,1,15,23,88,88,6,14,"3/9",0
3,79,76,6,2222,126,1,15,23,88,88,6,14,"3/9",0
4,79,76,6,2222,126,1,15,23,88,88,6,14,"3/9",0
5,79,76,6,2222,126,1,15,23,88,88,6,14,"3/9",0
I've to read a single line at a time. I then have to store each value to a structure element.
|
|
|
|
|
Check the attributes of the output file test.txt if it already exists. Check if it is read only.
|
|
|
|
|
|
Is it possible to do a GetLastError() or _get_errno() and see the error code?
|
|
|
|
|
When I print the
GetLastError() , it prints 183.
|
|
|
|
|
Use errlook to check the meaning of error codes. In this case 183 means: Cannot create a file when that file already exists. Either add options to recreate the file even if it exists, or ensure that your filename is unique.
It's time for a new signature.
|
|
|
|
|