|
I'm converting a listbox control to be a list control and in reviewing the code I came across a method of CListbox that doesn't have a similar method in CListCtrl. The method is GetSelItems(int, LPINT). Did I completely miss something?
After thinking about what would be needed, I came up with the following code as a replacement. Comments or suggestions are welcome. Thanks.
int CMyListCtrl::GetSelItems(int nMax, LPINT paIndex)
{
int i;
POSITION pos = GetFirstSelectedItemPosition();
for ( i = 0; (i < nMax && pos); i++ )
{
*paIndex[i] = GetNextSelectedItem(pos);
}
return i;
}
Chris
|
|
|
|
|
I am having problems with setting focus to a editbox from a handler of a CListCtrl's item changed. The handler does everything it is suppose to but sets the focus to the edit box. I have an idea of what is happening but i dont know how to work around it. I think the problem is that maybe the editbox get focus but later after my handler return control back to MFC handler focus is return back to the List. All the controls are created by code not the dialog editor.
Is there anything I can do? I don't want to use a Timer w/ CWnd either?
Thank you...
|
|
|
|
|
add different font color text lines to a CRichEdit?
|
|
|
|
|
You need to use CRichEditCtrl::SetSelectionCharFormat()
A sample:
First Select the text with SetSel and then
CHARFORMAT cf;
cf.dwMask = CFM_COLOR;
cf.dwEffects = CFE_AUTOCOLOR;
cf.crTextColor = (COLORREF)RGB(100, 100, 100);
pRichEditCtrl->SetSelectionCharFormat(cf);
Cheers!!!
Carlos Antollini.
|
|
|
|
|
I know that this question has been asked here a few times before but the answers haven't quite been to my problem.
My limited understanding of how printing works is that the client area of the MDI/SDI is transfered to the printer using device contexts. My application is dialog based and the data I want to print resides in a database and I don't have a client area. Therefore I will I believe, need to build the printed page in memory using the data first before transfering it to the printer.
I have read Chris Maunder's Printing article but still don't see how I am going to get this to work.
Has anyone else done this?
If so can someone please give me a push in the right direction. Code snippets or full working examples greatfully accepted.
Michael Martin
Pegasystems Pty Ltd
Australia
martm@pegasystems.com
+61 413-004-018
|
|
|
|
|
KB article Q133275 "HOWTO: Print from a Class Other Than CView" may be helpful.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
I would like to know how i could use the method find when i don't want to specify the name of my column but its index. I would like to use find for different table which have the same form (number of columns and rows) but where the fields name are different. For example i want to find record in the first column, whatever the table.
thanks in advance
gerald
|
|
|
|
|
it's Impossible. You need to inform the name of the field.
Carlos Antollini.
|
|
|
|
|
What can cause a CRecordset object to be readonly? My CDatabase object is tested to be open and updatable so that's not the problem.
I can use the recordset to fetch records from the database table and I've verified that my recordset contains a record. I also make sure to position the cursor at the first record. But still CanUpdate() returns false.
I've tried opening the recordset as both dynaset or snapshot, but neither works. I don't use the CRecordset::readOnly paramter either.
I'm also quite sure there's no permission restraints in my table, since updates using ExecuteSQL works fine.
Does anyone recognize this problem and could tell me what to try? Or maybe give me a pointer to a good faq about MFC and databases?
My database table contains fields of the following types: int, datetime, smallint and numeric. It has an auto-generated primary key of type int.
Any advice will be much appreciated.
Thanks,
Jimmy Ehrnström
|
|
|
|
|
The class CRecordset don't work fine.
A lot of people have the same problem.
You can make two things.
If you want to be a good database programer, never Update a Table usign the metodo AddNew or Update, is better to use SQL Sentences. Like INSERT or UPDATE using ExecuteSQL. If you are using a SQL Server or Oracle or like some this, Please use Stored Procedures, for update, insert, and delete records, Is better, Quickly and more secure for the programer and for the DBA, because you don't need permits over the table you only need permit of execute in the stored, Also is easy for Admin, because if you add a field into a table, sometimes you only need to modify the store and not the VC++ Code.
Best Regards.
Carlos Antollini.
|
|
|
|
|
With all the problems I've had with my recordsets I can only believe that your right. It's strange though that I haven't found any warnings about recordsets, just small examples where they mostly use recordsets to fetch data. You could think that MFC classes should work fine together with SQL server, but obviously that's not very true.
I'll guess I have to switch to stored procedures, like you suggested. Hopefully the redesigning will be minimal and maybe I'll save time in the long run.
Thanks a lot for your 2 cents.
|
|
|
|
|
Try with my class CADODatabase and CADORecordset, These are in CodeProject, But I will send you a new version by email. A lot of people said me that replaced the class CDatabase and CRecordset for my classes, and with a minimal change in the code.
Cheers!!!
Carlos Antollini.
|
|
|
|
|
Finally I found the problem with my non updatable/appendable recordset class: The table the recordset was supposed to operate on had no primary key, and this led to the recordset not being updatable/appendable.
I've spent way too many hours looking for the solution, and now I feel stupid that I didn't notice the lack of primary key earlier. Thanks to everyone that has tried to help me. Hopefully this experience could be of some help to others too.
|
|
|
|
|
A table must have a primary key for the CRecordset object to be able to add records to it. If no primary key is defined then I think it is marked as readOnly.
|
|
|
|
|
I hope somebody knows how to do this
Well my problem is that I am tring to implement arabic (Right to left) application. Mirroring controls and menus functions well ( in spite of the bugs in VC) but the language of the texts is wrong the whole way apart from those that are to be written in editboxes.
Does anyone have an idea about how to force the CMenu and CStatic to write in arabic instead of "something strange"?
Environements I am using:
- Win 2000 english / Win98 norwegian / win98 arabic
- VC++ 6 the application is MFC app and should run on arabic win 98
All help is appreciated
Hussam
|
|
|
|
|
First thing I'd suggest is to check the FONT lines in your dialog resources. They should be "MS Shell Dlg" not "MS Sans Serif" which is the default. (MFC automagically changes the dialog font itself in East Asian languages at the time the dialog is created, so I'd think it would do the same for other DBCS languages, but maybe not. Give it a shot.)
--Mike--
http://home.inreach.com/mdunn/
"Make sure that if you are using a blow torch that you don't set anything on fire."
-- Chris Maunder
|
|
|
|
|
I did That, I made a System for Citibank in Hebrew.
Ask me to carlos.antollini@nixorcorp.com
I will try to help!!!
Carlos Antollini.
|
|
|
|
|
Hi,
I'm having problems to load a dll using the LoadLibrary API function. It works in the debug version, but returns ERROR_INVALID_ORDINAL in the release.
Any help is appreciated.
Cheers,
xico
----------------------------
xicoloko@hotmail.com
www.devbrasil.com
|
|
|
|
|
Your DLL depends on some other library (it's importing a function by ordinal), and this library has no function with required number.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Tomasz,
First of all thanks for your reply!!
My dll doesn't use any other dll (apart from the system ones).
But even if I had this problem why would the debug version work?
cheers
----------------------------
xicoloko
xicoloko@hotmail.com
www.devbrasil.com
|
|
|
|
|
But even if I had this problem why would the debug version work?
Maybe some functions are compiled only when DEBUG is #defined. You should use depends.exe to check what exactly is missing.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Hello
how can i add a buttom border to the CToolBar that was created at run time?
10x
|
|
|
|
|
|
how can i make a buttom border for a CToolBar?
|
|
|
|
|
My English is a little bit weak, so please be more specific: you want 'button border' or 'bottom border'?
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|