CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 4 of 4

Thread: MSFlexgrid

  1. #1
    Guest

    MSFlexgrid

    Hi, Can the MSFlexgrid be set to display multi-line data in one row? (Like the text box property)



  2. #2
    Join Date
    Jul 2001
    Posts
    1

    Re: MSFlexgrid

    yes,you can but you have set the properties like cell width and height.


  3. #3
    Join Date
    May 2000
    Location
    New York, NY, USA
    Posts
    2,878

    Re: MSFlexgrid

    'This example shows how to do word wrap in msfg
    With MSFlexGrid1

    .WordWrap = True
    .AllowUserResizing = flexResizeBoth
    .TextMatrix(0, 0) = "This long entry will be word wrapped."
    'if the height is not big enough then end of the line will be truncated
    .RowHeight(0) = 600
    .ColWidth(0) = 800


    End With


    Iouri Boutchkine
    [email protected]
    Iouri Boutchkine
    [email protected]

  4. #4
    Join Date
    May 2000
    Location
    New York, NY, USA
    Posts
    2,878

    Re: MSFlexgrid

    Here is another example how to adjust row height for the multiline cell

    Private Declare Function SendMessage Lib "user32" Alias _
    "SendMessageA" _
    (ByVal hwnd As Long, _
    ByVal wMsg As Long, _
    ByVal wParam As Long, _
    lParam As Any) As Long

    Const EM_GETLINECOUNT = &HBA

    Private Sub Command1_Click()
    Dim ColLoop As Long
    Dim RowLoop As Long

    'Turn off redrawing to avoid flickering
    MSFlexGrid1.Redraw = False

    For ColLoop = 0 To MSFlexGrid1.Cols - 1
    MSFlexGrid1.ColWidth(ColLoop) = 2500

    For RowLoop = 0 To MSFlexGrid1.Rows - 1
    ReSizeCellHeight RowLoop, ColLoop
    Next RowLoop
    Next ColLoop

    'Turn redrawing back on
    MSFlexGrid1.Redraw = True
    End Sub


    Public Sub ReSizeCellHeight(MyRow As Long, MyCol As Long)
    Dim LinesOfText As Long
    Dim HeightOfLine As Long

    'Set MSFlexGrid to appropriate Cell
    MSFlexGrid1.Row = MyRow
    MSFlexGrid1.Col = MyCol

    'Set textbox width to match current width of selected cell
    Text1.Width = MSFlexGrid1.ColWidth(MyCol)

    'Set font info of textbox to match FlexGrid control
    Text1.Font.Name = MSFlexGrid1.Font.Name
    Text1.Font.Size = MSFlexGrid1.Font.Size
    Text1.Font.Bold = MSFlexGrid1.Font.Bold
    Text1.Font.Italic = MSFlexGrid1.Font.Italic
    Text1.Font.Strikethrough = MSFlexGrid1.Font.Strikethrough
    Text1.Font.Underline = MSFlexGrid1.Font.Underline

    'Set font info of form to match FlexGrid control
    Me.Font.Name = MSFlexGrid1.Font.Name
    Me.Font.Size = MSFlexGrid1.Font.Size
    Me.Font.Bold = MSFlexGrid1.Font.Bold
    Me.Font.Italic = MSFlexGrid1.Font.Italic
    Me.Font.Strikethrough = MSFlexGrid1.Font.Strikethrough
    Me.Font.Underline = MSFlexGrid1.Font.Underline

    'Put the text from the selected cell into the textbox
    Text1.Text = MSFlexGrid1.Text

    'Get the height of the text in the textbox
    HeightOfLine = Me.TextHeight(Text1.Text)

    'Call API to determine how many lines of text are in text box
    LinesOfText = SendMessage(Text1.hwnd, EM_GETLINECOUNT, 0&, 0&)

    'Check to see if row is not tall enough
    If MSFlexGrid1.RowHeight(MyRow) <= (LinesOfText * HeightOfLine) Then
    'Adjust the RowHeight based on the number of lines in textbox
    MSFlexGrid1.RowHeight(MyRow) = LinesOfText * HeightOfLine
    End If
    End Sub





    Iouri Boutchkine
    [email protected]
    Iouri Boutchkine
    [email protected]

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured